Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update WebSocket Notifications #3076

Merged
merged 1 commit into from Jan 9, 2023

Conversation

BlackDex
Copy link
Collaborator

@BlackDex BlackDex commented Dec 30, 2022

Previously the websocket notifications were using the string app_id as the
ContextId. This was incorrect and should have been the device_uuid
from the client device executing the request. The clients will ignore
the websocket request if the uuid matches. This also fixes some issues
with the Desktop client which is able to modify attachments within the
same screen and causes an issue when saving the attachment afterwards.

Also changed the way to handle removed attachments, since that causes an
error saving the vault cipher afterwards, complaining about a missing
attachment. Bitwarden ignores this, and continues with the remaining
attachments (if any). This also fixes #2591 .

Further some more websocket notifications have been added to some other
functions which enhance the user experience.

  • Logout users when deauthed, changed password, rotated keys
  • Trigger OrgSyncKeys on user confirm and removal
  • Added some extra to the send feature

Also renamed UpdateTypes to match Bitwarden naming.

@BlackDex BlackDex force-pushed the update-notifications branch 2 times, most recently from f26e211 to 8d2e933 Compare December 31, 2022 16:39
Previously the websocket notifications were using `app_id` as the
`ContextId`. This was incorrect and should have been the device_uuid
from the client device executing the request. The clients will ignore
the websocket request if the uuid matches. This also fixes some issues
with the Desktop client which is able to modify attachments within the
same screen and causes an issue when saving the attachment afterwards.

Also changed the way to handle removed attachments, since that causes an
error saving the vault cipher afterwards, complaining about a missing
attachment. Bitwarden ignores this, and continues with the remaining
attachments (if any). This also fixes dani-garcia#2591 .

Further some more websocket notifications have been added to some other
functions which enhance the user experience.

- Logout users when deauthed, changed password, rotated keys
- Trigger OrgSyncKeys on user confirm and removal
- Added some extra to the send feature

Also renamed UpdateTypes to match Bitwarden naming.
@BlackDex BlackDex changed the title WIP: Update WebSocket Notifications Update WebSocket Notifications Dec 31, 2022
@BlackDex BlackDex marked this pull request as ready for review December 31, 2022 20:16
@tessus
Copy link
Contributor

tessus commented Jan 2, 2023

The clients will ignore the websocket request if the uuid matches.

Hmm, aren't the websocket requests supposed to work for a specific device? Thus the device (client) should ignore the websocket request, if the uuid DOES NOT match.

Or am I missing something here?

@BlackDex
Copy link
Collaborator Author

BlackDex commented Jan 2, 2023

The clients will ignore the websocket request if the uuid matches.

Hmm, aren't the websocket requests supposed to work for a specific device? Thus the device (client) should ignore the websocket request, if the uuid DOES NOT match.

Or am I missing something here?

All applicable clients will receive the exact same websocket notification. That includes the client which made the change. Because that client already has the correct changes it doesn't need to pull them in again. So the device id if the client which triggered the notification is sent with it, and then that specific client will ignore the request, all others will act upon the message and fetch the latest cipher data, or sync etc..

@tessus
Copy link
Contributor

tessus commented Jan 2, 2023

Ah, ok. For some reason I had the impression that some event had to be sent to a signle device, but yep, it's basically a broadcast. Thus I had it backwards. Makes sense.

@sirux88 sirux88 mentioned this pull request Jan 7, 2023
@dani-garcia dani-garcia merged commit 996b60e into dani-garcia:main Jan 9, 2023
@BlackDex BlackDex deleted the update-notifications branch January 10, 2023 16:09
RickCoxDev pushed a commit to RickCoxDev/home-cluster that referenced this pull request May 25, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) |
minor | `1.27.0` -> `1.28.1` |

---

### Release Notes

<details>
<summary>dani-garcia/vaultwarden</summary>

###
[`v1.28.1`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.28.1)

[Compare
Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.28.0...1.28.1)

#### What's Changed

- Decode knowndevice `X-Request-Email` as base64url with no padding by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3376
- Fix abort on password reset mail error by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3390
- support `/users/<uuid>/invite/resend` admin api by
[@&#8203;nikolaevn](https://togithub.com/nikolaevn) in
[dani-garcia/vaultwarden#3397
- always return KdfMemory and KdfParallelism by
[@&#8203;stefan0xC](https://togithub.com/stefan0xC) in
[dani-garcia/vaultwarden#3398
- Fix sending out multiple websocket notifications by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3405
- Revert setcap, update rust and crates by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3403

#### New Contributors

- [@&#8203;nikolaevn](https://togithub.com/nikolaevn) made their first
contribution in
[dani-garcia/vaultwarden#3397

**Full Changelog**:
dani-garcia/vaultwarden@1.28.0...1.28.1

###
[`v1.28.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.28.0)

[Compare
Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.27.0...1.28.0)

#### Major changes

- The project has changed license to the
[**AGPLv3**](https://togithub.com/dani-garcia/vaultwarden/blob/main/LICENSE.txt).
If you're hosting a Vaultwarden instance, you now have a requirement to
distribute the Vaultwarden source code to your users if they request it.
The source code, and any changes you have made, need to be under the
same AGPLv3 license. If you simply use our code without modifications,
just pointing them to this repository is enough.
- Added support for **Argon2** key derivation on the clients. To enable
it for your account, make sure all your clients are using version
v2023.2.0 or greater, then go to account settings > security > keys, and
change the algorithm from PBKDF2 to Argon2id.
- Added support for **Argon2** key derivation for the admin page token.
To update your admin token to use it, [check the
wiki](https://togithub.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page#secure-the-admin_token)
- New **alternative registries** for the docker images are available (In
**BETA** for now):
- **Github Container Registry**: https://ghcr.io/dani-garcia/vaultwarden
    -   **Quay**: https://quay.io/vaultwarden/server

#### What's Changed

- Remove patched multer-rs by
[@&#8203;manofthepeace](https://togithub.com/manofthepeace) in
[dani-garcia/vaultwarden#2968
- Removed unsafe-inline JS from CSP and other fixes by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3058
- Validate YUBICO_SERVER string
([#&#8203;3003](https://togithub.com/dani-garcia/vaultwarden/issues/3003))
by [@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3059
- Log message to stderr if LOG_FILE is not writable by
[@&#8203;pjsier](https://togithub.com/pjsier) in
[dani-garcia/vaultwarden#3061
- Update WebSocket Notifications by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3076
- Optimize config loading messages by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3092
- Percent-encode org_name in links by
[@&#8203;am97](https://togithub.com/am97) in
[dani-garcia/vaultwarden#3093
- Fix failing large note imports by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3087
- Change `text/plain` API responses to `application/json` by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3124
- Remove `shrink-to-fit=no` from viewport-meta-tag by
[@&#8203;redwerkz](https://togithub.com/redwerkz) in
[dani-garcia/vaultwarden#3126
- Update dependencies and MSRV by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3128
- Resolve uninlined_format_args clippy warnings by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3065
- Update Rust to v1.66.1 to patch CVE by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3136
- Fix remaining inline format by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3130
- Use more modern meta tag for charset encoding by
[@&#8203;redwerkz](https://togithub.com/redwerkz) in
[dani-garcia/vaultwarden#3131
- fix (2fa.directory): Allow api.2fa.directory, and remove 2fa.directory
by [@&#8203;GeekCornerGH](https://togithub.com/GeekCornerGH) in
[dani-garcia/vaultwarden#3132
- Optimize CipherSyncData for very large vaults by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3133
- Add avatar color support by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3134
- Add MFA icon to org member overview by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3135
- Minor refactoring concering user.setpassword by
[@&#8203;sirux88](https://togithub.com/sirux88) in
[dani-garcia/vaultwarden#3139
- Validate note sizes on key-rotation. by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3157
- Update KDF Configuration and processing by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3163
- Remove `arm32v6`-specific tag by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3164
- Re-License Vaultwarden to AGPLv3 by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#2561
- Admin password reset by
[@&#8203;sirux88](https://togithub.com/sirux88) in
[dani-garcia/vaultwarden#3116
- "Spell-Jacking" mitigation ~ prevent sensitive data leak … by
[@&#8203;dlehammer](https://togithub.com/dlehammer) in
[dani-garcia/vaultwarden#3145
- Allow listening on privileged ports (below 1024) as non-root by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3170
- don't nullify key when editing emergency access by
[@&#8203;stefan0xC](https://togithub.com/stefan0xC) in
[dani-garcia/vaultwarden#3215
- Fix trailing slash not getting removed from domain by
[@&#8203;BlockListed](https://togithub.com/BlockListed) in
[dani-garcia/vaultwarden#3228
- Generate distinct log messages for regex vs. IP blacklisting. by
[@&#8203;kpfleming](https://togithub.com/kpfleming) in
[dani-garcia/vaultwarden#3231
- allow editing/unhiding by group by
[@&#8203;farodin91](https://togithub.com/farodin91) in
[dani-garcia/vaultwarden#3108
- Fix Javascript issue on non sqlite databases by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3167
- add argon2 kdf fields by [@&#8203;tessus](https://togithub.com/tessus)
in
[dani-garcia/vaultwarden#3210
- add support for system mta though sendmail by
[@&#8203;soruh](https://togithub.com/soruh) in
[dani-garcia/vaultwarden#3147
- Updated Rust and crates by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3234
- docs: add build status badge in readme by
[@&#8203;R3DRUN3](https://togithub.com/R3DRUN3) in
[dani-garcia/vaultwarden#3245
- Validate all needed fields for client API login by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3251
- Fix Organization delete when groups are configured by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3252
- Fix Collection Read Only access for groups by
[@&#8203;Misterbabou](https://togithub.com/Misterbabou) in
[dani-garcia/vaultwarden#3254
- Make the admin session lifetime adjustable by
[@&#8203;mittler-works](https://togithub.com/mittler-works) in
[dani-garcia/vaultwarden#3262
- Add function to fetch user by email address by
[@&#8203;mittler-works](https://togithub.com/mittler-works) in
[dani-garcia/vaultwarden#3263
- Fix vault item display in org vault view by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3277
- Add confirmation for removing 2FA and deauthing sessions in admin
panel by [@&#8203;JCBird1012](https://togithub.com/JCBird1012) in
[dani-garcia/vaultwarden#3282
- Some Admin Interface updates by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3288
- Fix the web-vault v2023.2.0 API calls by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3281
- Fix confirmation for removing 2FA and deauthing sessions in admin
panel by [@&#8203;dpinse](https://togithub.com/dpinse) in
[dani-garcia/vaultwarden#3290
- Admin token Argon2 hashing support by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3289
- Add HEAD routes to avoid spurious error messages by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3307
- Fix web-vault Member UI show/edit/save by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3315
- Upd Crates, Rust, MSRV, GHA and remove Backtrace by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3310
- Add support for `/api/devices/knowndevice` with HTTP header params by
[@&#8203;jjlin](https://togithub.com/jjlin) in
[dani-garcia/vaultwarden#3329
- Update Rust, MSRV and Crates by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3348
- Merge ClientIp with Headers. by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3332
- add endpoints to bulk delete collections/groups by
[@&#8203;stefan0xC](https://togithub.com/stefan0xC) in
[dani-garcia/vaultwarden#3354
- Add support for Quay.io and GHCR.io as registries by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3363
- Some small fixes and updates by
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[dani-garcia/vaultwarden#3366
- Update web vault to v2023.3.0 by
[@&#8203;dani-garcia](https://togithub.com/dani-garcia)

#### New Contributors

- [@&#8203;manofthepeace](https://togithub.com/manofthepeace) made their
first contribution in
[dani-garcia/vaultwarden#2968
- [@&#8203;pjsier](https://togithub.com/pjsier) made their first
contribution in
[dani-garcia/vaultwarden#3061
- [@&#8203;am97](https://togithub.com/am97) made their first
contribution in
[dani-garcia/vaultwarden#3093
- [@&#8203;redwerkz](https://togithub.com/redwerkz) made their first
contribution in
[dani-garcia/vaultwarden#3126
- [@&#8203;sirux88](https://togithub.com/sirux88) made their first
contribution in
[dani-garcia/vaultwarden#3139
- [@&#8203;dlehammer](https://togithub.com/dlehammer) made their first
contribution in
[dani-garcia/vaultwarden#3145
- [@&#8203;BlockListed](https://togithub.com/BlockListed) made their
first contribution in
[dani-garcia/vaultwarden#3228
- [@&#8203;kpfleming](https://togithub.com/kpfleming) made their first
contribution in
[dani-garcia/vaultwarden#3231
- [@&#8203;farodin91](https://togithub.com/farodin91) made their first
contribution in
[dani-garcia/vaultwarden#3108
- [@&#8203;soruh](https://togithub.com/soruh) made their first
contribution in
[dani-garcia/vaultwarden#3147
- [@&#8203;R3DRUN3](https://togithub.com/R3DRUN3) made their first
contribution in
[dani-garcia/vaultwarden#3245
- [@&#8203;Misterbabou](https://togithub.com/Misterbabou) made their
first contribution in
[dani-garcia/vaultwarden#3254
- [@&#8203;mittler-works](https://togithub.com/mittler-works) made their
first contribution in
[dani-garcia/vaultwarden#3262
- [@&#8203;JCBird1012](https://togithub.com/JCBird1012) made their first
contribution in
[dani-garcia/vaultwarden#3282
- [@&#8203;dpinse](https://togithub.com/dpinse) made their first
contribution in
[dani-garcia/vaultwarden#3290

**Full Changelog**:
dani-garcia/vaultwarden@1.27.0...1.28.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on saturday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/RickCoxDev/home-cluster).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to update cipher after editing attachments using Desktop client
3 participants