Bump the app image to the newest available bluesky-social/pds tag. abra recipe upgrade bluesky-pds -m
reports candidates ["0.4.5046","0.4.5044","0.4.5043","0.4.5037","0.4.5036","0.4.5034"]; this takes
the newest, 0.4.5046. caddy is unchanged (abra confirms 2 is latest).
service
image
current
new
app
ghcr.io/bluesky-social/pds
0.4.5027
0.4.5046
caddy
caddy
2
2 (unchanged)
Image-tag mapping: 0.4.5NNN == @atproto/pds0.5.NN, so this step is @atproto/pds 0.5.27 → 0.5.46.
The recipe env interface is unchanged (same PDS_* set + the same three secrets); upstream sample.env and compose.yaml are byte-identical between v0.4.5027 and v0.4.5046.
Entrypoint is unchanged: the image Cmd is still node --enable-source-maps index.ts, so the
recipe's entrypoint.sh.tmpl (exec node ... index.ts) remains correct. Image is built on
Node 24.22.1.
Health endpoint GET /xrpc/_health unchanged; no data migration required for this same-series re-pin.
Notable upstream items (all patch releases in the window): 0.5.36 adds optional email-based 2FA and
fixes email-auth-factor toggles; 0.5.42 requires privileged app passwords for all chat.bsky RPC
methods; 0.5.44 adds a strict access flag to report queues; 0.5.46 requires patched Undici versions
for direct dependencies and versioned dispatchers. The 0.5.37 since/startCursor additions and the
0.5.29 alt-field relaxations are additive client-facing changes.
### Advisory scan (deterministic pre-step) — bluesky-pds 0.4.5027 → 0.4.5046
**CVEs fixed by this upgrade: 0 identified by the deterministic scan.**
Seen but not version-classified (15) — includes advisories from OTHER images in this recipe (sidecars), which this window cannot judge: CVE-2026-27585, CVE-2026-27586, CVE-2026-27587, CVE-2026-27588, CVE-2026-27589, CVE-2026-27590, CVE-2026-30851, CVE-2026-30852, CVE-2026-45135, CVE-2026-45692, CVE-2026-52844, CVE-2026-52845
_Sources checked: 7 (4 registry URLs + advisory APIs). This scan is ADDITIVE — it does not replace the release-note reading in the upgrade step._
--adjudicate re-run produced the same output (no open cases reached the adjudication pass). Union with
the release-note read: no CVE ids are named in the window's @atproto/pds entries, so the union count
is 0. No failed sources this run.
Verification
abra recipe lint bluesky-pds -C -n: only pre-existing warnings (R002 healthcheck, R007 README
metadata, R015 secret-name length), unrelated to this bump.
Direct --chaos deploy on cc-ci (dev-bluesky-pds.ci.commoninternet.net, --server default) went
green: NEW DEPLOYMENT 64002452, bluesky-social/pds: 0.4.5046 (new), both services 1/1. PDS logs starting→started; in-container and public GET /xrpc/_health both returned {"version":"0.4.5046"} (HTTP 200 via Caddy/Traefik TLS). The dev deploy was torn down — no stack,
volumes, secrets, configs, network, containers or env file remain.
!testme results are posted below.
Release
This PR deliberately does not bump the coop-cloud.${STACK_NAME}.version label. After merge, the
operator runs:
abra recipe release bluesky-pds -z
(no --dry-run; -z patch — a non-breaking upstream patch bump). The recipe version bump + tag +
publish are the operator's final step.
Note: PR #5 (upgrade-589d490, 0.4.5027→0.4.5037) remains open and is untouched; this is a fresh
upgrade to the newer 0.4.5046.
## Upgrade: bluesky-pds app `0.4.5027` → `0.4.5046`
Bump the `app` image to the newest available `bluesky-social/pds` tag. `abra recipe upgrade bluesky-pds -m`
reports candidates `["0.4.5046","0.4.5044","0.4.5043","0.4.5037","0.4.5036","0.4.5034"]`; this takes
the newest, `0.4.5046`. `caddy` is unchanged (abra confirms `2` is latest).
| service | image | current | new |
|---------|-------|---------|-----|
| app | `ghcr.io/bluesky-social/pds` | `0.4.5027` | `0.4.5046` |
| caddy | `caddy` | `2` | `2` (unchanged) |
Image-tag mapping: `0.4.5NNN` == `@atproto/pds` `0.5.NN`, so this step is `@atproto/pds`
**0.5.27 → 0.5.46**.
**Upstream release notes:** app `0.4.5027`→`0.4.5046` (`@atproto/pds` `0.5.27`→`0.5.46`):
https://github.com/bluesky-social/atproto/blob/main/packages/pds/CHANGELOG.md
(app image tags: https://github.com/bluesky-social/pds/tags)
**Upstream release notes:** caddy `2`→`2`: unchanged, no upgrade —
https://github.com/caddyserver/caddy/releases
### Operator Action Required
**None — no mandatory migration or config change.**
- The recipe env interface is unchanged (same `PDS_*` set + the same three secrets); upstream
`sample.env` and `compose.yaml` are byte-identical between `v0.4.5027` and `v0.4.5046`.
- Entrypoint is unchanged: the image `Cmd` is still `node --enable-source-maps index.ts`, so the
recipe's `entrypoint.sh.tmpl` (`exec node ... index.ts`) remains correct. Image is built on
Node 24.22.1.
- Health endpoint `GET /xrpc/_health` unchanged; no data migration required for this same-series re-pin.
- Notable upstream items (all patch releases in the window): 0.5.36 adds optional email-based 2FA and
fixes email-auth-factor toggles; 0.5.42 requires privileged app passwords for all `chat.bsky` RPC
methods; 0.5.44 adds a strict access flag to report queues; 0.5.46 requires patched Undici versions
for direct dependencies and versioned dispatchers. The 0.5.37 `since`/`startCursor` additions and the
0.5.29 `alt`-field relaxations are additive client-facing changes.
### Advisory scan
Deterministic scanner (`cc-ci-plan/advisory-scan.py bluesky-pds --from 0.4.5027 --to 0.4.5046`):
```
### Advisory scan (deterministic pre-step) — bluesky-pds 0.4.5027 → 0.4.5046
**CVEs fixed by this upgrade: 0 identified by the deterministic scan.**
Seen but not version-classified (15) — includes advisories from OTHER images in this recipe (sidecars), which this window cannot judge: CVE-2026-27585, CVE-2026-27586, CVE-2026-27587, CVE-2026-27588, CVE-2026-27589, CVE-2026-27590, CVE-2026-30851, CVE-2026-30852, CVE-2026-45135, CVE-2026-45692, CVE-2026-52844, CVE-2026-52845
_Sources checked: 7 (4 registry URLs + advisory APIs). This scan is ADDITIVE — it does not replace the release-note reading in the upgrade step._
```
`--adjudicate` re-run produced the same output (no open cases reached the adjudication pass). Union with
the release-note read: no CVE ids are named in the window's `@atproto/pds` entries, so the union count
is **0**. No failed sources this run.
### Verification
- `abra recipe lint bluesky-pds -C -n`: only pre-existing warnings (R002 healthcheck, R007 README
metadata, R015 secret-name length), unrelated to this bump.
- Direct `--chaos` deploy on cc-ci (`dev-bluesky-pds.ci.commoninternet.net`, `--server default`) went
green: `NEW DEPLOYMENT 64002452`, `bluesky-social/pds: 0.4.5046 (new)`, both services 1/1. PDS logs
`starting`→`started`; in-container and public `GET /xrpc/_health` both returned
`{"version":"0.4.5046"}` (HTTP 200 via Caddy/Traefik TLS). The dev deploy was torn down — no stack,
volumes, secrets, configs, network, containers or env file remain.
- `!testme` results are posted below.
### Release
This PR deliberately does **not** bump the `coop-cloud.${STACK_NAME}.version` label. After merge, the
operator runs:
abra recipe release bluesky-pds -z
(no `--dry-run`; `-z` patch — a non-breaking upstream patch bump). The recipe version bump + tag +
publish are the operator's final step.
Note: PR #5 (`upgrade-589d490`, `0.4.5027`→`0.4.5037`) remains open and is untouched; this is a fresh
upgrade to the newer `0.4.5046`.
NOT merged — for operator review.
cc @trav @notplants
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Upgrade: bluesky-pds app
0.4.5027→0.4.5046Bump the
appimage to the newest availablebluesky-social/pdstag.abra recipe upgrade bluesky-pds -mreports candidates
["0.4.5046","0.4.5044","0.4.5043","0.4.5037","0.4.5036","0.4.5034"]; this takesthe newest,
0.4.5046.caddyis unchanged (abra confirms2is latest).ghcr.io/bluesky-social/pds0.4.50270.4.5046caddy22(unchanged)Image-tag mapping:
0.4.5NNN==@atproto/pds0.5.NN, so this step is@atproto/pds0.5.27 → 0.5.46.
Upstream release notes: app
0.4.5027→0.4.5046(@atproto/pds0.5.27→0.5.46):https://github.com/bluesky-social/atproto/blob/main/packages/pds/CHANGELOG.md
(app image tags: https://github.com/bluesky-social/pds/tags)
Upstream release notes: caddy
2→2: unchanged, no upgrade —https://github.com/caddyserver/caddy/releases
Operator Action Required
None — no mandatory migration or config change.
PDS_*set + the same three secrets); upstreamsample.envandcompose.yamlare byte-identical betweenv0.4.5027andv0.4.5046.Cmdis stillnode --enable-source-maps index.ts, so therecipe's
entrypoint.sh.tmpl(exec node ... index.ts) remains correct. Image is built onNode 24.22.1.
GET /xrpc/_healthunchanged; no data migration required for this same-series re-pin.fixes email-auth-factor toggles; 0.5.42 requires privileged app passwords for all
chat.bskyRPCmethods; 0.5.44 adds a strict access flag to report queues; 0.5.46 requires patched Undici versions
for direct dependencies and versioned dispatchers. The 0.5.37
since/startCursoradditions and the0.5.29
alt-field relaxations are additive client-facing changes.Advisory scan
Deterministic scanner (
cc-ci-plan/advisory-scan.py bluesky-pds --from 0.4.5027 --to 0.4.5046):--adjudicatere-run produced the same output (no open cases reached the adjudication pass). Union withthe release-note read: no CVE ids are named in the window's
@atproto/pdsentries, so the union countis 0. No failed sources this run.
Verification
abra recipe lint bluesky-pds -C -n: only pre-existing warnings (R002 healthcheck, R007 READMEmetadata, R015 secret-name length), unrelated to this bump.
--chaosdeploy on cc-ci (dev-bluesky-pds.ci.commoninternet.net,--server default) wentgreen:
NEW DEPLOYMENT 64002452,bluesky-social/pds: 0.4.5046 (new), both services 1/1. PDS logsstarting→started; in-container and publicGET /xrpc/_healthboth returned{"version":"0.4.5046"}(HTTP 200 via Caddy/Traefik TLS). The dev deploy was torn down — no stack,volumes, secrets, configs, network, containers or env file remain.
!testmeresults are posted below.Release
This PR deliberately does not bump the
coop-cloud.${STACK_NAME}.versionlabel. After merge, theoperator runs:
(no
--dry-run;-zpatch — a non-breaking upstream patch bump). The recipe version bump + tag +publish are the operator's final step.
Note: PR #5 (
upgrade-589d490,0.4.5027→0.4.5037) remains open and is untouched; this is a freshupgrade to the newer
0.4.5046.NOT merged — for operator review.
cc @trav @notplants
!testme
🌻 cc-ci —
bluesky-pds@64002452✅ passedfull logs · dashboard
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.