-
v0.8.0
StableAll checks were successfulreleased this
2026-07-24 18:04:51 +02:00 | 308 commits to main since this releaseChangelog
fd2f6c3Merge pull request 'Release v0.8.0' (#394) from release/v0.8.0 into main
79f5a85Release v0.8.0
5bcb5c3Merge pull request 'fix(cleanup): resolve four bunyip review findings (BUNYIP-400)' (#392) from fix/BUNYIP-400-cleanup into main
84a9a1eMerge pull request 'fix(admin): report real outcome of ten admin mutations (BUNYIP-398)' (#391) from fix/BUNYIP-398-admin-false-success into main
c395aa4Merge pull request 'fix(web): never trap an admin on the onboarding email-verification gate (BUNYIP-401)' (#393) from fix/BUNYIP-401-admin-never-trapped-on-unverified-email into main
9b315cdstyle: wrap onboarding_needed signature to satisfy rustfmt (BUNYIP-401)
8162bcdfix(web): never trap an admin on the onboarding email-verification gate (BUNYIP-401)
3f2f7c7fix(cleanup): resolve four bunyip review findings
2e69f8dfix(admin): report real outcome of ten admin mutations
22d2d1aMerge pull request 'docs(getting-started): drop the dead help.psa.systems row (PMS-661)' (#390) from fix/PMS-661-remove-dead-help-psa-systems into main
ebdaacedocs(getting-started): drop the dead help.psa.systems row (PMS-661)
4dc90e7Merge pull request 'fix(email): reword password-reset email + show request country (BUNYIP-397)' (#389) from fix/BUNYIP-397-reset-email-copy into main
d66073dfix(email): reword password-reset email and show the request country (BUNYIP-397)
5e93a4eMerge pull request 'feat(docs): Mokosh product quick-start for mokosh-server (PMS-662)' (#388) from feat/PMS-662-mokosh-quickstart into main
737b151feat(docs): seed a Mokosh product quick-start for mokosh-server (PMS-662)
6fdef53Merge pull request 'feat(docs): Mokosh local Compose + OCI login docs for mokosh-server (PMS-678)' (#387) from feat/PMS-678-mokosh-setup-docs into main
4de3cc8feat(docs): seed Mokosh setup docs (compose, registry login, split) for mokosh-server (PMS-678)
5e6552dMerge pull request 'fix(web): OCI sign-in step is always required, not "only if private" (BUNYIP-393)' (#386) from fix/BUNYIP-393-oci-login-always-required into main
3156dfcfix(web): drop the "only if private" qualifier from the OCI sign-in step (BUNYIP-393)
baa6f37Merge pull request 'fix(docs): make the public per-app docs read public, not entitlement-gated (BUNYIP-394)' (#385) from fix/BUNYIP-388-public-docs-not-entitlement-gated into main
b6e1d92feat(catalog): show restricted-but-documented apps as a docs-only locked card (BUNYIP-395)
7f25f20fix(docs): make the public per-app docs read public, not entitlement-gated (BUNYIP-394)
66e5319Merge pull request 'fix(web): docs admin route 404 + catalog link on wrong apps (BUNYIP-390)' (#384) from fix/BUNYIP-388-docs-admin-route-and-catalog-link into main
7de67b6feat(web): gate the catalog Documentation link on a has_docs flag (BUNYIP-391)
11b4d6efix(web): register admin docs routes + move catalog docs link to OCI apps (BUNYIP-390)
c777d16Merge pull request 'chore(oci-build): replace bunyip-api stub-cache hacks with cargo-chef (BUNYIP-389)' (#383) from chore/BUNYIP-389-cargo-chef-build into main
8a66354chore(oci-build): replace bunyip-api stub-cache hacks with cargo-chef (BUNYIP-389)
8a78e72Merge pull request 'feat(docs): per-application documentation, admin-authored + public (BUNYIP-388)' (#382) from feat/BUNYIP-388-application-docs into main
e3032c5fix(docs): gate per-app doc reads, audit doc writes, robust sort_order (BUNYIP-388)
040603cfix(docs): friendlier empty state for an app with no docs (BUNYIP-388)
6fe190bfeat(docs): per-application documentation, admin-authored + public (BUNYIP-388)
00b631eMerge pull request 'fix(web): make public /docs user-facing, drop internal dev runbooks (BUNYIP-387)' (#381) from fix/BUNYIP-387-user-facing-docs into main
6c09fc7fix(web): describe the account action instead of naming a button (BUNYIP-387)
515d03bfix(web): make public /docs user-facing, drop internal dev runbooks
5d79006Merge pull request 'feat(oci): retain app version history so bumps do not lose old versions (BUNYIP-386)' (#380) from feat/BUNYIP-386-oci-version-history into main
6cfc71dMerge pull request 'feat(web): serve top-level docs publicly at /docs (BUNYIP-385)' (#379) from feat/BUNYIP-385-docs-route into main
e62f108feat(download): retain + serve historical binary releases (BUNYIP-386)
d1bdbf0feat(oci): self-heal version history + fill digest on the serve path (BUNYIP-386)
31b483cfeat(oci): retain app version history so bumps do not lose old versions (BUNYIP-386)
80b110efix(web): strip raw HTML from rendered docs for defense-in-depth (BUNYIP-385)
9247577fix(web): use axum 0.7 colon route param for /docs/:slug (BUNYIP-385)
78919d0feat(web): serve top-level docs publicly at /docs (BUNYIP-385)
eadfafdMerge pull request 'fix(web): close the SSE EventSource on pagehide (BUNYIP-380)' (#377) from fix/BUNYIP-380-sse-pagehide-close into main
f1d2e4bMerge branch 'main' into fix/BUNYIP-380-sse-pagehide-close
9d09fbeMerge pull request 'fix(e2e): register disposable accounts through the signup bot guard (BUNYIP-384)' (#378) from fix/BUNYIP-384-e2e-signup-guard into main
c8877e6fix(e2e): register disposable accounts through the signup bot guard (BUNYIP-384)
411d01bfix(web): close the SSE EventSource on pagehide (BUNYIP-380)
73f07d6Merge pull request 'feat(auth): merge the 2FA trust-device control into sign-in remember-me (BUNYIP-382)' (#376) from feat/BUNYIP-382-merge-2fa-remember into main
ec5903bMerge branch 'main' into feat/BUNYIP-382-merge-2fa-remember
1e70872Merge pull request 'feat(auth): uniform 30-min / 1-day (30-day-remember) session lifetimes (BUNYIP-381)' (#375) from feat/BUNYIP-381-token-lifetimes into main
b4ce83efeat(auth): merge the 2FA trust-device control into sign-in remember-me (BUNYIP-382)
5b78d6cfeat(auth): uniform 30-min / 1-day (30-day-remember) session lifetimes, drop admin idle leash (BUNYIP-381)
eb6a124Merge pull request 'feat(auth): signup bot-guard foundation - honeypot + submit-timing (BUNYIP-377)' (#374) from feat/BUNYIP-377-signup-bot-prevention into main
616e6f9feat(web): wire the register form to the signup bot guard (BUNYIP-377)
c65ce8dfeat(auth): signup bot-guard foundation - honeypot + submit-timing (BUNYIP-377)
f8dccb1Merge pull request 'feat(auth): harden the login-approval gate (BUNYIP-375)' (#373) from feat/BUNYIP-375-approval-gate-hardening into main
5f18691feat(auth): harden the login-approval gate (BUNYIP-375)
87039ecMerge pull request 'feat(auth): suspicious-login notify-and-approve gate (BUNYIP-373)' (#372) from feat/BUNYIP-373-suspicious-login-approval into main
4be752afix(auth): make the login-approval attempt cap and single-use race-free (BUNYIP-373)
9256804feat(auth): gate suspicious logins behind an emailed approval code (BUNYIP-373)
e13fb92Merge pull request 'fix(catalog): correct stale Mokosh app names and disable vervain-agent (BUNYIP-374)' (#371) from fix/BUNYIP-374-applications-catalog-names-vervain into main
ac330a4feat(auth): BUNYIP-373 foundation - schema, challenge token, config flag
5a96743Merge pull request 'feat(web): add a Docker Compose deploy option to app download instructions (BUNYIP-372)' (#370) from feat/BUNYIP-372-compose-download-instructions into main
760905cfix(catalog): correct stale Mokosh app names and disable vervain-agent
6edd143feat(web): add a Docker Compose deploy option to app download instructions (BUNYIP-372)
8466e47Merge pull request 'feat(auth): alert users on a new-country login (BUNYIP-366)' (#369) from feat/BUNYIP-366-login-location-alerts into main
bfed45efeat(auth): user-settable login-location opt-out, test alert decision
1ed8542feat(auth): alert users on a new-country login (BUNYIP-366)
4226330Merge pull request 'feat(applications): surface per-app release-notes link in the applications view (BUNYIP-343)' (#368) from feat/BUNYIP-343-application-release-notes into main
3d21e04feat(applications): surface per-app release-notes link in the applications view (BUNYIP-343)
4ceefd3Merge pull request 'feat(security): self-provision the bunyip_app NOBYPASSRLS role (BUNYIP-360)' (#365) from feat/BUNYIP-360-provision-app-role into main
f351e7bMerge pull request 'feat(e2e): bunyip-e2e-bootstrap --enable-2fa enrolls a preset TOTP secret (BUNYIP-359)' (#367) from feat/BUNYIP-359-bootstrap-2fa into main
20bc03bfix(e2e): refuse --enable-2fa under the all-zero dev TOTP key (BUNYIP-359 review)
a84839cfeat(e2e): bunyip-e2e-bootstrap --enable-2fa enrolls a preset TOTP secret (BUNYIP-359)
b8275f2Merge pull request 'feat(hub): step-by-step download/pull instructions in the OCI/Download modal (BUNYIP-358)' (#366) from feat/BUNYIP-358-download-instructions into main
0f50ac3feat(hub): step-by-step download/pull instructions in the OCI/Download modal (BUNYIP-358)
2625fe8feat(security): self-provision the bunyip_app NOBYPASSRLS role to activate per-user RLS (BUNYIP-360)
13e8dd5Merge pull request 'feat(security): route more self-service reads through begin_with_user (BUNYIP-344)' (#364) from feat/BUNYIP-344-route-remaining-selfservice-reads into main
17d67b2feat(security): route more self-service reads through begin_with_user (BUNYIP-344)
1535a17Merge pull request 'feat(security): per-user row level security on self-service tables (BUNYIP-344)' (#363) from feat/BUNYIP-344-rls-self-service-slice into main
75b0d8ffeat(security): per-user row level security on self-service tables (BUNYIP-344)
7fe98c4Merge pull request 'fix(api): resolve external client IP in tracing span and OIDC IP capture' (#362) from fix/BUNYIP-310-access-log-client-ip into main
fcb0783fix(api): resolve external client IP in tracing span and OIDC IP capture
c5e1c56Merge pull request 'feat(web): forward end-user client IP to bunyip-api' (#361) from feat/BUNYIP-311-web-forward-client-ip into main
7d527a9feat(web): forward end-user client IP to bunyip-api
fe3dd22Merge pull request 'docs(scaffold): update Postgres image ref to PG18' (#360) from chore/BUNYIP-349-docs-postgres-18 into main
716aedcdocs(scaffold): update Postgres image ref to PG18
2c8c086Merge pull request 'fix(oidc): use SHA-512 left-32 at_hash for EdDSA id_tokens' (#359) from fix/BUNYIP-352-at-hash-sha512-eddsa into main
f8687e2fix(oidc): use SHA-512 left-32 at_hash for EdDSA id_tokens
0083c62Merge pull request 'docs(backup): document MOKOSH_BACKUP_API_URL for teammates (BUNYIP-356)' (#358) from docs/BUNYIP-356-mokosh-backup-url-runbook into main
994b5a2docs(backup): document MOKOSH_BACKUP_API_URL for teammates (BUNYIP-356)
18a5b0bMerge pull request 'feat(backup): wire the real Mokosh backup/restore client (BUNYIP-356)' (#357) from feat/BUNYIP-356-mokosh-backup-adapter into main
3a92dfafeat(backup): wire the real Mokosh backup/restore client (BUNYIP-356)
b3b96c5Merge pull request 'feat(backup): account-level backup and restore behind the Backup add-on (BUNYIP-353)' (#356) from feat/BUNYIP-353-account-backup-restore into main
c2a033afeat(backup): account-level backup and restore behind the Backup add-on (BUNYIP-353)
93d81f3Merge pull request 'feat(settings): regenerate 2FA recovery codes UI (BUNYIP-355 part 1)' (#355) from feat/BUNYIP-355-recovery-codes-ui into main
f31f9a1fix(2fa): revoke trusted devices and rate-limit on authenticator re-key confirm (BUNYIP-355)
f39d1f5feat(2fa): step-up-gated authenticator re-key with a staged pending secret (BUNYIP-355 part 2)
e6cda1afeat(settings): regenerate 2FA recovery codes from the settings page (BUNYIP-355 part 1)
1136345Merge pull request 'feat(oidc): first-party consent skip + named third-party consent (BUNYIP-342 part 1)' (#354) from feat/BUNYIP-342-first-party-consent-skip into main
e8cce8efix(oidc-web): reject off-issuer consent continue_url (open redirect) (BUNYIP-342)
84a2491feat(oidc-web): named third-party consent screen and spec-compliant Deny (BUNYIP-342 part 2)
fa9ee0cfeat(oidc): skip consent for first-party clients, name the client for third-party (BUNYIP-342 part 1)
3d77406Merge pull request 'chore(compose): bump self-host Postgres to 18 (BUNYIP-350)' (#353) from chore/BUNYIP-350-postgres-18 into main
65f9bfechore(compose): bump dev Postgres 16 -> 18 for dev/prod parity (BUNYIP-350)
d552171chore(compose): bump self-host Postgres 16 -> 18 to match the deployed template (BUNYIP-350)
0226b8cMerge pull request 'feat(admin): move Stripe checkout knobs into DB admin settings (BUNYIP-351)' (#352) from feat/BUNYIP-351-stripe-checkout-db-config into main
6c735c9Merge branch 'main' into feat/BUNYIP-351-stripe-checkout-db-config
9d0364fMerge pull request 'feat(admin): move email/SMTP config into DB admin settings (BUNYIP-351)' (#351) from feat/BUNYIP-351-email-db-config into main
9d5b6cdfeat(admin): move Stripe checkout knobs into DB admin settings (BUNYIP-351)
c622200Merge remote-tracking branch 'origin/main' into feat/BUNYIP-351-email-db-config
8f0999ffeat(admin): move email/SMTP config into DB admin settings (BUNYIP-351)
2cd43a5Merge pull request 'feat(admin): move auto-ban config into DB admin settings (BUNYIP-351)' (#350) from feat/BUNYIP-351-auto-ban-db-config into main
d0ce0c2feat(admin): move auto-ban config into DB admin settings (BUNYIP-351)
81305b0Merge pull request 'feat(auth): bootstrap first admin from BOOTSTRAP_ADMIN_EMAIL (BUNYIP-290)' (#349) from feat/BUNYIP-290-bootstrap-admin-email into main
4ff90cdfeat(auth): bootstrap first admin from BOOTSTRAP_ADMIN_EMAIL (BUNYIP-290)Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)