WPB-23789: Move operation to ConversationSubsystem#5126
WPB-23789: Move operation to ConversationSubsystem#5126blackheaven wants to merge 19 commits intodevelopfrom
Conversation
2e747fc to
5cbcf0d
Compare
edd315b to
77e5669
Compare
battermann
left a comment
There was a problem hiding this comment.
Are you going to add a changelog?
There was a problem hiding this comment.
these do not need to be changed because they are for an older version of the background-worker
| settings: | ||
| maxTeamSize: 10000 | ||
| maxFanoutSize: 500 | ||
| exposeInvitationURLsTeamAllowlist: [] | ||
| maxConvSize: 500 | ||
| intraListing: true | ||
| conversationCodeURI: null | ||
| multiIngress: null | ||
| federationProtocols: null | ||
| guestLinkTTLSeconds: 31536000 | ||
| passwordHashingOptions: | ||
| algorithm: scrypt # or argon2id | ||
| passwordHashingRateLimit: | ||
| ipAddrLimit: | ||
| burst: 5 | ||
| inverseRate: 300000000 # 5 mins, makes it 12 reqs/hour | ||
| userLimit: | ||
| burst: 5 | ||
| inverseRate: 60000000 # 1 min, makes it 60 req/hour | ||
| internalLimit: | ||
| burst: 10 | ||
| inverseRate: 0 # No rate limiting for internal use | ||
| ipv4CidrBlock: 32 # Only block individual IP addresses | ||
| ipv6CidrBlock: 64 # Block /64 range at a time. | ||
| ipAddressExceptions: [] | ||
| maxRateLimitedKeys: 100000 # Estimated memory usage: 4 MB | ||
|
|
There was a problem hiding this comment.
I think it is very important that we do not duplicate these here.
We should either move these to a global.settings section and use them both in galley and background-worker templates, or use the values from galley directly in the background-worker configmap.
| maxTeamSize: {{ .settings.maxTeamSize }} | ||
| maxFanoutSize: {{ .settings.maxFanoutSize }} | ||
| exposeInvitationURLsTeamAllowlist: {{ .settings.exposeInvitationURLsTeamAllowlist }} | ||
| maxConvSize: {{ .settings.maxConvSize }} | ||
| intraListing: {{ .settings.intraListing }} | ||
| {{- if .settings.conversationCodeURI }} | ||
| conversationCodeURI: {{ .settings.conversationCodeURI | quote }} | ||
| {{- else if .settings.multiIngress }} | ||
| multiIngress: {{- toYaml .settings.multiIngress | nindent 8 }} | ||
| {{- end }} | ||
| {{- if .settings.federationProtocols }} | ||
| federationProtocols: {{ .settings.federationProtocols }} | ||
| {{- end }} | ||
| {{- if .settings.guestLinkTTLSeconds }} | ||
| guestLinkTTLSeconds: {{ .settings.guestLinkTTLSeconds }} | ||
| {{- end }} | ||
| passwordHashingOptions: {{ toYaml .settings.passwordHashingOptions | nindent 8 }} | ||
| passwordHashingRateLimit: {{ toYaml .settings.passwordHashingRateLimit | nindent 8 }} | ||
| {{- if .settings.checkGroupInfo }} | ||
| checkGroupInfo: {{ .settings.checkGroupInfo }} |
There was a problem hiding this comment.
We should use the values from galley here (maybe move them to global.settings?) and not duplicate them in the background-worker section.
| -- This file is part of the Wire Server implementation. | ||
| -- | ||
| -- Copyright (C) 2026 Wire Swiss GmbH <opensource@wire.com> | ||
| -- Copyright (C) 2022 Wire Swiss GmbH <opensource@wire.com> |
| Member (ErrorS 'MLSLegalholdIncompatible) r, | ||
| Member (ErrorS 'MLSIdentityMismatch) r, | ||
| Member (ErrorS 'MLSUnsupportedMessage) r, | ||
| Member (ErrorS 'MLSStaleMessage) r, | ||
| Member (ErrorS 'MLSProposalNotFound) r, | ||
| Member (ErrorS 'MLSCommitMissingReferences) r, | ||
| Member (ErrorS 'MLSSelfRemovalNotAllowed) r, | ||
| Member (ErrorS 'MLSClientSenderUserMismatch) r, | ||
| Member (ErrorS 'MLSSubConvClientNotInParent) r, | ||
| Member (ErrorS 'MLSInvalidLeafNodeSignature) r, | ||
| Member (ErrorS 'MLSClientMismatch) r, | ||
| Member (ErrorS 'MLSInvalidLeafNodeIndex) r, | ||
| Member (ErrorS 'MLSUnsupportedProposal) r, | ||
| Member (Error MLSProtocolError) r, | ||
| Member (Error GroupInfoDiagnostics) r, | ||
| Member (Error MLSOutOfSyncError) r, | ||
| Member (Error MLSProposalFailure) r, | ||
| Member (Error NonFederatingBackends) r, | ||
| Member (ErrorS 'GroupIdVersionNotSupported) r, | ||
| Member (ErrorS 'ConvMemberNotFound) r, | ||
| Member (ErrorS 'HistoryNotSupported) r, | ||
| Member (Error UnreachableBackendsLegacy) r, | ||
| Member (ErrorS MLSGroupConversationMismatch) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.LeaveConversation)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.RemoveConversationMember)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.DeleteConversation)) r, | ||
| Member (ErrorS 'BroadcastLimitExceeded) r, | ||
| Member (ErrorS 'MLSFederatedResetNotSupported) r, | ||
| Member (ErrorS 'MLSSubConvUnsupportedConvType) r, | ||
| Member (ErrorS 'TeamMemberNotFound) r, | ||
| Member (ErrorS 'AccessDenied) r, | ||
| Member (ErrorS 'MLSMissingGroupInfo) r, | ||
| Member (ErrorS 'CodeNotFound) r, | ||
| Member (ErrorS 'InvalidConversationPassword) r, | ||
| Member (ErrorS 'GuestLinksDisabled) r, | ||
| Member (ErrorS 'MLSFederatedOne2OneNotSupported) r, | ||
| Member (ErrorS 'TooManyMembers) r, | ||
| Member (ErrorS 'CreateConversationCodeConflict) r, | ||
| Member (ErrorS 'InvalidTarget) r, | ||
| Member (ErrorS 'MLSReadReceiptsNotAllowed) r, | ||
| Member (ErrorS 'InvalidTargetAccess) r, | ||
| Member (ErrorS 'ConvInvalidProtocolTransition) r, | ||
| Member (ErrorS 'MLSMigrationCriteriaNotSatisfied) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.AddConversationMember)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyOtherConversationMember)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyConversationName)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyConversationMessageTimer)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyConversationReceiptMode)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyConversationAccess)) r, | ||
| Member (ErrorS ('ActionDenied ConvRole.ModifyAddPermission)) r, |
There was a problem hiding this comment.
this is insane, can't we merge them into a coproduct?
There was a problem hiding this comment.
I have added a type
| GetClients :: | ||
| UserId -> | ||
| ConversationSubsystem m [ClientId] |
There was a problem hiding this comment.
This should go somewhere else, IMO, because it is completely unrelated to conversations.
| GetFeatureInternal :: | ||
| (GetFeatureConfig cfg) => | ||
| TeamId -> | ||
| ConversationSubsystem m (LockableFeature cfg) |
There was a problem hiding this comment.
Also this must go somewhere else. And I am not sure where exactly. Maybe TeamSubsystem?
| RemoveUser :: | ||
| Local StoredConversation -> | ||
| MLSRemoval.RemoveUserIncludeMain -> | ||
| Qualified UserId -> | ||
| ConversationSubsystem m () |
There was a problem hiding this comment.
The fact that StoredConversation is exposed by the ConversationSubsystem seems to me like the wrong abstraction.
There was a problem hiding this comment.
Some of them are actually used in other subsystems, but this one can be eliminated (I've moved some more code).
| PostMLSCommitBundle :: | ||
| Local x -> | ||
| Qualified UserId -> | ||
| ClientId -> | ||
| ConvType -> | ||
| Qualified ConvOrSubConvId -> | ||
| Maybe ConnId -> | ||
| EnableOutOfSyncCheck -> | ||
| IncomingBundle -> | ||
| ConversationSubsystem m [LocalConversationUpdate] | ||
| PostMLSCommitBundleFromLocalUser :: | ||
| Version -> | ||
| Local UserId -> | ||
| ClientId -> | ||
| ConnId -> | ||
| RawMLS CommitBundle -> | ||
| ConversationSubsystem m MLSMessageSendingStatus | ||
| PostMLSMessage :: | ||
| Local x -> | ||
| Qualified UserId -> | ||
| ClientId -> | ||
| ConvType -> | ||
| Qualified ConvOrSubConvId -> | ||
| Maybe ConnId -> | ||
| EnableOutOfSyncCheck -> | ||
| IncomingMessage -> | ||
| ConversationSubsystem m [LocalConversationUpdate] | ||
| PostMLSMessageFromLocalUser :: | ||
| Version -> | ||
| Local UserId -> | ||
| ClientId -> | ||
| ConnId -> | ||
| RawMLS Message -> | ||
| ConversationSubsystem m MLSMessageSendingStatus | ||
| IsMLSEnabled :: ConversationSubsystem m Bool | ||
| IterateConversations :: | ||
| Local UserId -> | ||
| Range 1 500 Int32 -> | ||
| ([StoredConversation] -> m a) -> | ||
| ConversationSubsystem m () | ||
| RemoveMemberFromLocalConv :: | ||
| Local ConvId -> | ||
| Local UserId -> | ||
| Maybe ConnId -> | ||
| Qualified UserId -> | ||
| ConversationSubsystem m (Maybe Event) | ||
| FederationOnConversationCreated :: | ||
| Domain -> | ||
| ConversationCreated ConvId -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationGetConversationsV1 :: | ||
| Domain -> | ||
| GetConversationsRequest -> | ||
| ConversationSubsystem m GetConversationsResponse | ||
| FederationGetConversations :: | ||
| Domain -> | ||
| GetConversationsRequest -> | ||
| ConversationSubsystem m GetConversationsResponseV2 | ||
| FederationLeaveConversation :: | ||
| Domain -> | ||
| LeaveConversationRequest -> | ||
| ConversationSubsystem m LeaveConversationResponse | ||
| FederationSendMessage :: | ||
| Domain -> | ||
| ProteusMessageSendRequest -> | ||
| ConversationSubsystem m MessageSendResponse | ||
| FederationUpdateConversation :: | ||
| Domain -> | ||
| ConversationUpdateRequest -> | ||
| ConversationSubsystem m ConversationUpdateResponse | ||
| FederationMlsSendWelcome :: | ||
| Domain -> | ||
| MLSWelcomeRequest -> | ||
| ConversationSubsystem m MLSWelcomeResponse | ||
| FederationSendMLSMessage :: | ||
| Domain -> | ||
| MLSMessageSendRequest -> | ||
| ConversationSubsystem m MLSMessageResponse | ||
| FederationSendMLSCommitBundle :: | ||
| Domain -> | ||
| MLSMessageSendRequest -> | ||
| ConversationSubsystem m MLSMessageResponse | ||
| FederationQueryGroupInfo :: | ||
| Domain -> | ||
| GetGroupInfoRequest -> | ||
| ConversationSubsystem m GetGroupInfoResponse | ||
| FederationUpdateTypingIndicator :: | ||
| Domain -> | ||
| TypingDataUpdateRequest -> | ||
| ConversationSubsystem m TypingDataUpdateResponse | ||
| FederationOnTypingIndicatorUpdated :: | ||
| Domain -> | ||
| TypingDataUpdated -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationGetSubConversationForRemoteUser :: | ||
| Domain -> | ||
| GetSubConversationsRequest -> | ||
| ConversationSubsystem m GetSubConversationsResponse | ||
| FederationDeleteSubConversationForRemoteUser :: | ||
| Domain -> | ||
| DeleteSubConversationFedRequest -> | ||
| ConversationSubsystem m DeleteSubConversationResponse | ||
| FederationLeaveSubConversation :: | ||
| Domain -> | ||
| LeaveSubConversationRequest -> | ||
| ConversationSubsystem m LeaveSubConversationResponse | ||
| FederationGetOne2OneConversationV1 :: | ||
| Domain -> | ||
| GetOne2OneConversationRequest -> | ||
| ConversationSubsystem m GetOne2OneConversationResponse | ||
| FederationGetOne2OneConversation :: | ||
| Domain -> | ||
| GetOne2OneConversationRequest -> | ||
| ConversationSubsystem m GetOne2OneConversationResponseV2 | ||
| FederationOnClientRemoved :: | ||
| Domain -> | ||
| ClientRemovedRequest -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationOnMessageSent :: | ||
| Domain -> | ||
| RemoteMessage ConvId -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationOnMLSMessageSent :: | ||
| Domain -> | ||
| RemoteMLSMessage -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationOnConversationUpdatedV0 :: | ||
| Domain -> | ||
| ConversationUpdateV0 -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationOnConversationUpdated :: | ||
| Domain -> | ||
| ConversationUpdate -> | ||
| ConversationSubsystem m EmptyResponse | ||
| FederationOnUserDeleted :: | ||
| Domain -> | ||
| UserDeletedConversationsNotification -> | ||
| ConversationSubsystem m EmptyResponse | ||
| PostOtrMessageUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| Maybe IgnoreMissing -> | ||
| Maybe ReportMissing -> | ||
| NewOtrMessage -> | ||
| ConversationSubsystem m (PostOtrResponse ClientMismatch) | ||
| PostOtrBroadcastUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Maybe IgnoreMissing -> | ||
| Maybe ReportMissing -> | ||
| NewOtrMessage -> | ||
| ConversationSubsystem m (PostOtrResponse ClientMismatch) | ||
| PostProteusMessage :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| RawProto QualifiedNewOtrMessage -> | ||
| ConversationSubsystem m (PostOtrResponse MessageSendingStatus) | ||
| PostProteusBroadcast :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| QualifiedNewOtrMessage -> | ||
| ConversationSubsystem m (PostOtrResponse MessageSendingStatus) | ||
| DeleteLocalConversation :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Local ConvId -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| GetMLSPublicKeys :: | ||
| Maybe MLSPublicKeyFormat -> | ||
| ConversationSubsystem m (MLSKeysByPurpose (MLSKeys SomeKey)) | ||
| FeatureEnabledForTeam :: | ||
| forall cfg m. | ||
| (GetFeatureConfig cfg) => | ||
| Proxy cfg -> | ||
| TeamId -> | ||
| ConversationSubsystem m Bool | ||
| GetAllTeamFeaturesForUser :: | ||
| UserId -> | ||
| ConversationSubsystem m AllTeamFeatures | ||
| GetSingleFeatureForUser :: | ||
| forall cfg m. | ||
| (GetFeatureConfig cfg) => | ||
| UserId -> | ||
| ConversationSubsystem m (LockableFeature cfg) | ||
| ResetMLSConversation :: | ||
| Local UserId -> | ||
| MLSReset -> | ||
| ConversationSubsystem m () | ||
| GetSubConversation :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| SubConvId -> | ||
| ConversationSubsystem m PublicSubConversation | ||
| GetUserStatus :: | ||
| Local UserId -> | ||
| TeamId -> | ||
| UserId -> | ||
| ConversationSubsystem m UserLegalHoldStatusResponse | ||
| GuardSecondFactorDisabled :: | ||
| UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m () | ||
| GetBotConversation :: | ||
| BotId -> | ||
| ConvId -> | ||
| ConversationSubsystem m Public.BotConvView | ||
| -- Query functions | ||
| GetUnqualifiedOwnConversation :: | ||
| Local UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m Public.OwnConversation | ||
| GetOwnConversation :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m Public.OwnConversation | ||
| GetPaginatedConversations :: | ||
| Local UserId -> | ||
| Maybe (Range 1 32 (CommaSeparatedList ConvId)) -> | ||
| Maybe ConvId -> | ||
| Maybe (Range 1 500 Int32) -> | ||
| ConversationSubsystem m (Public.ConversationList Public.OwnConversation) | ||
| GetConversation :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m Public.Conversation | ||
| GetConversationRoles :: | ||
| Local UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m ConversationRolesList | ||
| SearchChannels :: | ||
| Local UserId -> | ||
| TeamId -> | ||
| Maybe Text -> | ||
| Maybe SortOrder -> | ||
| Maybe PageSize -> | ||
| Maybe Text -> | ||
| Maybe ConvId -> | ||
| Bool -> | ||
| ConversationSubsystem m ConversationPage | ||
| GetGroupInfo :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m GroupInfoData | ||
| ConversationIdsPageFromUnqualified :: | ||
| Local UserId -> | ||
| Maybe ConvId -> | ||
| Maybe (Range 1 1000 Int32) -> | ||
| ConversationSubsystem m (ConversationList ConvId) | ||
| ConversationIdsPageFromV2 :: | ||
| ListGlobalSelfConvs -> | ||
| Local UserId -> | ||
| Public.GetPaginatedConversationIds -> | ||
| ConversationSubsystem m Public.ConvIdsPage | ||
| ConversationIdsPageFrom :: | ||
| Local UserId -> | ||
| Public.GetPaginatedConversationIds -> | ||
| ConversationSubsystem m Public.ConvIdsPage | ||
| ListConversations :: | ||
| Local UserId -> | ||
| Public.ListConversations -> | ||
| ConversationSubsystem m ConversationsResponse | ||
| GetConversationByReusableCode :: | ||
| Local UserId -> | ||
| Code.Key -> | ||
| Code.Value -> | ||
| ConversationSubsystem m ConversationCoverView | ||
| GetMLSSelfConversationWithError :: | ||
| Local UserId -> | ||
| ConversationSubsystem m Public.OwnConversation | ||
| GetMLSOne2OneConversationV5 :: | ||
| Local UserId -> | ||
| Qualified UserId -> | ||
| ConversationSubsystem m Public.OwnConversation | ||
| GetMLSOne2OneConversationV6 :: | ||
| Local UserId -> | ||
| Qualified UserId -> | ||
| ConversationSubsystem m (MLSOne2OneConversation MLSPublicKey) | ||
| GetMLSOne2OneConversation :: | ||
| Local UserId -> | ||
| Qualified UserId -> | ||
| Maybe MLSPublicKeyFormat -> | ||
| ConversationSubsystem m (MLSOne2OneConversation SomeKey) | ||
| GetLocalSelf :: | ||
| Local UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m (Maybe Public.Member) | ||
| GetSelfMember :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m (Maybe Public.Member) | ||
| GetConversationGuestLinksStatus :: | ||
| UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m (LockableFeature GuestLinksConfig) | ||
| GetCode :: | ||
| Maybe Text -> | ||
| Local UserId -> | ||
| ConvId -> | ||
| ConversationSubsystem m ConversationCodeInfo | ||
| -- Update functions | ||
| AddMembersUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| Invite -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| AddMembersUnqualifiedV2 :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| InviteQualified -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| AddMembers :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| InviteQualified -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| ReplaceMembers :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| InviteQualified -> | ||
| ConversationSubsystem m () | ||
| JoinConversationById :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| JoinConversationByReusableCode :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| JoinConversationByCode -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| CheckReusableCode :: | ||
| IpAddr -> | ||
| ConversationCode -> | ||
| ConversationSubsystem m () | ||
| AddCodeUnqualified :: | ||
| Maybe CreateConversationCodeRequest -> | ||
| UserId -> | ||
| Maybe ZHostValue -> | ||
| Maybe ConnId -> | ||
| ConvId -> | ||
| ConversationSubsystem m AddCodeResult | ||
| AddCodeUnqualifiedWithReqBody :: | ||
| UserId -> | ||
| Maybe Text -> | ||
| Maybe ConnId -> | ||
| ConvId -> | ||
| CreateConversationCodeRequest -> | ||
| ConversationSubsystem m AddCodeResult | ||
| RmCodeUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationSubsystem m Event | ||
| MemberTypingUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| TypingStatus -> | ||
| ConversationSubsystem m () | ||
| MemberTyping :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| TypingStatus -> | ||
| ConversationSubsystem m () | ||
| RemoveMemberUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| UserId -> | ||
| ConversationSubsystem m (Maybe Event) | ||
| RemoveMemberQualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| Qualified UserId -> | ||
| ConversationSubsystem m (Maybe Event) | ||
| UpdateOtherMemberUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| UserId -> | ||
| OtherMemberUpdate -> | ||
| ConversationSubsystem m () | ||
| UpdateOtherMember :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| Qualified UserId -> | ||
| OtherMemberUpdate -> | ||
| ConversationSubsystem m () | ||
| UpdateUnqualifiedConversationName :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationRename -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationName :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationRename -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationMessageTimerUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationMessageTimerUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationMessageTimer :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationMessageTimerUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationReceiptModeUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationReceiptModeUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationReceiptMode :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationReceiptModeUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationAccessUnqualified :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| ConversationAccessData -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationAccess :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationAccessData -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateConversationHistory :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationHistoryUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateUnqualifiedSelfMember :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| ConvId -> | ||
| MemberUpdate -> | ||
| ConversationSubsystem m () | ||
| UpdateSelfMember :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| MemberUpdate -> | ||
| ConversationSubsystem m () | ||
| UpdateConversationProtocolWithLocalUser :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| ProtocolUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| UpdateChannelAddPermission :: | ||
| Local UserId -> | ||
| ConnId -> | ||
| Qualified ConvId -> | ||
| AddPermissionUpdate -> | ||
| ConversationSubsystem m (UpdateResult Event) | ||
| PostBotMessageUnqualified :: | ||
| BotId -> | ||
| ConvId -> | ||
| Maybe IgnoreMissing -> | ||
| Maybe ReportMissing -> | ||
| NewOtrMessage -> | ||
| ConversationSubsystem m (Either (MessageNotSent ClientMismatch) ClientMismatch) | ||
| -- Sub-conversation functions | ||
| DeleteSubConversation :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| SubConvId -> | ||
| MLSReset -> | ||
| ConversationSubsystem m () | ||
| GetSubConversationGroupInfo :: | ||
| Local UserId -> | ||
| Qualified ConvId -> | ||
| SubConvId -> | ||
| ConversationSubsystem m GroupInfoData | ||
| LeaveSubConversation :: | ||
| Local UserId -> | ||
| ClientId -> | ||
| Qualified ConvId -> | ||
| SubConvId -> | ||
| ConversationSubsystem m () | ||
| SendConversationActionNotifications :: | ||
| forall tag m. | ||
| Sing tag -> | ||
| Qualified UserId -> | ||
| Bool -> | ||
| Maybe ConnId -> | ||
| Local StoredConversation -> | ||
| Util.BotsAndMembers -> | ||
| ConversationAction (tag :: ConversationActionTag) -> | ||
| ExtraConversationData -> | ||
| ConversationSubsystem m LocalConversationUpdate | ||
| PermissionCheck :: | ||
| (IsPerm teamAssociation perm) => | ||
| perm -> Maybe teamAssociation -> ConversationSubsystem m teamAssociation | ||
| PermissionCheckSAbs :: | ||
| PermissionCheckArgs teamAssociation -> | ||
| ConversationSubsystem m teamAssociation | ||
| EnsureReAuthorised :: | ||
| UserId -> | ||
| Maybe PlainTextPassword6 -> | ||
| Maybe Code.Value -> | ||
| Maybe VerificationAction -> | ||
| ConversationSubsystem m () | ||
| QualifyLocal :: | ||
| a -> | ||
| ConversationSubsystem m (Local a) | ||
| AssertOnTeam :: | ||
| UserId -> | ||
| TeamId -> | ||
| ConversationSubsystem m () | ||
| CheckConsent :: | ||
| Map UserId TeamId -> | ||
| UserId -> | ||
| ConversationSubsystem m Util.ConsentGiven | ||
| GetLHStatusForUsers :: | ||
| [UserId] -> | ||
| ConversationSubsystem m [(UserId, UserLegalHoldStatus)] | ||
| EnsureConnectedToLocals :: | ||
| UserId -> | ||
| [UserId] -> | ||
| ConversationSubsystem m () | ||
| GetTeamMembersForFanout :: | ||
| TeamId -> | ||
| ConversationSubsystem m TeamMemberList | ||
| AssertTeamExists :: | ||
| TeamId -> | ||
| ConversationSubsystem m () | ||
| InternalUpsertOne2OneConversation :: | ||
| UpsertOne2OneConversationRequest -> | ||
| ConversationSubsystem m () | ||
| AcceptConv :: | ||
| QualifiedWithTag QLocal UserId -> | ||
| Maybe ConnId -> | ||
| ConvId -> | ||
| ConversationSubsystem m OwnConversation | ||
| BlockConv :: | ||
| QualifiedWithTag QLocal UserId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m () | ||
| UnblockConv :: | ||
| QualifiedWithTag QLocal UserId -> | ||
| Maybe ConnId -> | ||
| Qualified ConvId -> | ||
| ConversationSubsystem m () |
There was a problem hiding this comment.
I haven't gone through all of these, but we should for each one if it fits into the ConversationSubsystem or not.
There was a problem hiding this comment.
I have moved around some operations
| conversationCodeURI: null | ||
| multiIngress: null |
There was a problem hiding this comment.
One of these has to be set, otherwise background-worker will crash. This needs a release-note entry. But this problem should go away when background-worker and galley share the same config.
7da6fbc to
65d3410
Compare
Yes, as soon as we'ill get to a stable version. |
65d3410 to
39271bc
Compare
|
@battermann I have refactored helm charts, let me know if you had this in mind |
| * Chart configuration changes: | ||
| - Added `global.settings` section to deduplicate shared configuration between galley and background-worker services | ||
| - Background-worker now requires either `conversationCodeURI` or `multiIngress` to be set in its configuration | ||
| - Removed duplicate settings previously defined in both galley and background-worker sections |
There was a problem hiding this comment.
I haven't reviewed the whole thing but we must never hide config changes like this into the "internal" section of the changelog. This deserves to be part of the "release notes" section.
https://wearezeta.atlassian.net/browse/WPB-24072
Checklist
changelog.d