Skip to content

chart/5.7.9

  • chart/5.7.9
  • 93e8ca7
  • Partially verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
  • Compare
    Choose a tag to compare
  • chart/5.7.9
  • 93e8ca7
  • Compare
    Choose a tag to compare
  • Partially verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
@battermann battermann tagged this 12 Nov 14:08
* create rabbitmq exchange

* set up DLX

* wip

* create user queues on client add/update

* make it internal server error

* make galley compile

* make rabbitmq mandatory

* fix integration tests

* set correct DLX headers

* wip

* Add a WIP test to consume notifs via `GET /events`

* cannon: Roughly implement subscribing notifs from RabbitMQ

* gundeck: Start implementing push to rabbitmq

* integration: Fix assertion to assert on a real event

* integration: Use correct vHost in cannon

* cannon: Ensure exchange exists and publish event correctly on WS

* NotificationSubsystem: Align names for queues and extract them as top level bindings

* gundeck: Push events to RabbitMQ for compatible clients

* integration: Assert that acked events don't come back

* cannon: Forward client acks to rabbitmq

* WIP: Get rid of channel as an explicit param for NotificationSubsystem actions

* Get galley to compile.

* Fix some easy TODOs.

* Use these library better.

* resolve rebase conflict better.

* fix ghc errors.

* Extract rabbitmq channel lookup into helper.

* Move setupConsumableNotificationsClient from subsystems to gundeck.

* Revert "Get galley to compile."

This reverts commit 8a1840d6092982e7c527ead11f276e3c22fa7030.

* wire-subsystems: Fix compile errors in tests

* gundeck: doesn't depend on wire-subsystems (yet?)

* brig: Remove unnecessary import

* cannon: Don't create the queue for clients, expect it to already be there

* cannon: close ws connection when something goes wrong

* Funky!

* Undo funkiness: Create Wire.API.WebSocket with types for comms on the new websocket

* WIP: cannon: try to use the new types from wire-api

The case split is not the nicest, perhaps we can solve it with one these things:

- Bring back the funkiness for couple of commits ago
- Use separate types for server to client and client to server messages

* wire-api: Cabal file

* gen nix stuff

* ormolu

* Is this a good way of representing websocket messages?

* Resolve TODO.

amqp doesn't offer a bulk push operation.  instead it makes individual
pushes performant enough.  https://www.rabbitmq.com/docs/publishers

* Refactor test, extend coverage.

* Suggestions for better module name; removed "websocket" reference from some names.

* Roundtrip tests for Message*To*.

* Source comments.

* debug failing test [WIP]

* refactor tests a bit, fix ack, fix typos

* fix test, handle connection closed, format

* ping pong test

* Maintain stable connection to rabbitmq from cannon.  [WIP]

* Fix typo.

* Tune tests.

* Remove ping-pong stuff.

* Revert "Maintain stable connection to rabbitmq from cannon.  [WIP]"

This reverts commit 861ee102beb5b065e98e58377cf6fc519e69e44b.

problems with this approach:
- there is a maximum number of chans / conn.
- this is all very complicated and should be done separately.

* Test multiple acks and out of order acks

* cannon: Refactor code a little and more logging

* integration: Deal with events websocket more gracefully, ensure all acks are sent

* cannon: Easier to understand cleanup code

* Add TODO for tomorrow

* cannon: Ensure invalid messages don't accumulate

* small re-org of code

* Avoid using unsafeRange

* Reduce top level functions

* integration: Test that old and new clients can co-exist

* gundeck: Optimize number of calls to brig

* gundeck: Try to not kill brig

* Fix typo

* gundeck: Remove pairing comment

* wire-api: Rename Wire.API.WebSocket -> Wire.API.Event.WebSocketProtocol

* gundeck: Don't configure dead-lettering while declaring queues

This should be done via Policies:
https://www.rabbitmq.com/docs/parameters#policies

When done with Policies, we can change our mind about how to deal with
dead-lettering later because queues cannot be redeclared with with different
headers.

* More TODOs

* Use direct exchange for user notifications

Topic exchange is not very useful for our usecase

* integration: Test that users only get notifs meant for them

* integration/Notifications: Allow waiting for notifs without a client

* Deflake newly written tests

* cannon: Don't declare the exchange, its not needed

* integration: Make cannon logLevel Warn again

* integrations: Throw error if websocket responds with invalid JSON

* Add ticket number to FUTUREWORK

* Add notification Id to rabbitmq notifs

This can be used by clients to detect duplicate deliveries.

* Makefile/clean-rabbit: Also cleanup exchanges

* gundeck: Get preexisting unit tests to pass

* Set correct expiration on events pushed to RabbitMQ

* fix a typo in the changelog

* Fix a release note

* Add changelogs for public and internal API changes

* Move around routing key helper functions

* Remove commented out code

* Detect and flag missed notifications from RabbitMQ (#4317)

* Update a change log to reflect changes from PR #4317

---------

Co-authored-by: Akshay Mankar <[email protected]>
Co-authored-by: Matthias Fischmann <[email protected]>
Co-authored-by: Marko Dimjašević <[email protected]>
Co-authored-by: Igor Ranieri <[email protected]>
Assets 2
Loading