mirror of
https://github.com/bitwarden/server.git
synced 2026-02-11 11:23:14 +08:00
- Event Integrations Structurizr POC - Diagram updates with PR suggestions - Removed architecture documents and references to them - Added RabbitME detailed view - Added Events component view - Reworked the main server view into two filtered views: Cloud and Self-Hosted. - Added tags "Cloud-Only" and "Self-Hosted-Only" to remove models / relationships that don't apply - Refactored how we build the dynamic views to be more extensible * Re-home event integrations to Dirt; Address Claude feedback / typos * Update diagrams (models/views/relationships) to reflect current state of Event Integrations * Fixed typos and suggestions from Claude * Fixed a few more minor notes from Claude --------- Co-authored-by: Matt Gibson <mgibson@bitwarden.com> Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com> Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
116 lines
12 KiB
Plaintext
116 lines
12 KiB
Plaintext
# Top Level event publishing
|
|
server.api -> server.azure_service_bus.event_topic "Sends events to"
|
|
server.events -> server.azure_service_bus.event_topic "Sends events to"
|
|
server.identity -> server.azure_service_bus.event_topic "Sends events to"
|
|
server.sso -> server.azure_service_bus.event_topic "Sends events to"
|
|
server.scim -> server.azure_service_bus.event_topic "Sends events to"
|
|
server.api -> server.rabbit_mq.event_exchange "Sends events to"
|
|
server.events -> server.rabbit_mq.event_exchange "Sends events to"
|
|
server.identity -> server.rabbit_mq.event_exchange "Sends events to"
|
|
server.sso -> server.rabbit_mq.event_exchange "Sends events to"
|
|
server.scim -> server.rabbit_mq.event_exchange "Sends events to"
|
|
|
|
# Azure Service Bus topics, subscriptions, and routing
|
|
eventsWriteSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsWriteSub "Subscribes via fan-out"
|
|
eventsDatadogSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsDatadogSub "Subscribes via fan-out"
|
|
eventsHecSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsHecSub "Subscribes via fan-out"
|
|
eventsSlackSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsSlackSub "Subscribes via fan-out"
|
|
eventsTeamsSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsTeamsSub "Subscribes via fan-out"
|
|
eventsWebhookSub = server.azure_service_bus.event_topic -> server.azure_service_bus.eventsWebhookSub "Subscribes via fan-out"
|
|
integrationDatadogSub = server.azure_service_bus.integration_topic -> server.azure_service_bus.integrationDatadogSub "Subscribes via filter on Datadog key"
|
|
integrationHecSub = server.azure_service_bus.integration_topic -> server.azure_service_bus.integrationHecSub "Subscribes via filter on HEC key"
|
|
integrationSlackSub = server.azure_service_bus.integration_topic -> server.azure_service_bus.integrationSlackSub "Subscribes via filter on Slack key"
|
|
integrationTeamsSub = server.azure_service_bus.integration_topic -> server.azure_service_bus.integrationTeamsSub "Subscribes via filter on Teams key"
|
|
integrationWebhookSub = server.azure_service_bus.integration_topic -> server.azure_service_bus.integrationWebhookSub "Subscribes via filter on Webhook key"
|
|
|
|
eventsWriteListener = server.events_processor.event_listener -> server.azure_service_bus.eventsWriteSub "Listens to"
|
|
eventsWriteDelegate = server.events_processor.event_listener -> server.events_processor.event_repository_handler "Delegates to"
|
|
eventsDatadogListener = server.events_processor.event_listener -> server.azure_service_bus.eventsDatadogSub "Listens to"
|
|
eventsHecListener = server.events_processor.event_listener -> server.azure_service_bus.eventsHecSub "Listens to"
|
|
eventsSlackListener = server.events_processor.event_listener -> server.azure_service_bus.eventsSlackSub "Listens to"
|
|
eventsTeamsListener = server.events_processor.event_listener -> server.azure_service_bus.eventsTeamsSub "Listens to"
|
|
eventsWebhookListener = server.events_processor.event_listener -> server.azure_service_bus.eventsWebhookSub "Listens to"
|
|
eventsIntegrationHandlerDelegate = server.events_processor.event_listener -> server.events_processor.event_integration_handler "Delegates to"
|
|
|
|
eventIntegrationHandlerPublish = server.events_processor.event_integration_handler -> server.azure_service_bus.integration_topic "Publishes To"
|
|
eventIntegrationHandlerCache = server.events_processor.event_integration_handler -> server.events_processor.event_integrations_extended_cache "Fetches configurations from"
|
|
eventIntegrationHandlerDatabase = server.events_processor.event_integration_handler -> server.database "Fetches template details from"
|
|
cacheDatabaseFetch = server.events_processor.event_integrations_extended_cache -> server.database "Fetches configurations from"
|
|
eventIntegrationHandlerFilter = server.events_processor.event_integration_handler -> server.events_processor.integration_filter_service "Runs filters"
|
|
eventRepositoryDatabase = server.events_processor.event_repository_handler -> server.database "Writes events to"
|
|
|
|
integrationSlackListener = server.events_processor.integration_listener -> server.azure_service_bus.integrationSlackSub "Listens to"
|
|
integrationSlackDelegate = server.events_processor.integration_listener -> server.events_processor.slack_integration_handler "Delegates to"
|
|
integrationWebhookListener = server.events_processor.integration_listener -> server.azure_service_bus.integrationWebhookSub "Listens to"
|
|
integrationWebhookDelegate = server.events_processor.integration_listener -> server.events_processor.webhook_integration_handler "Delegates to"
|
|
integrationHecListener = server.events_processor.integration_listener -> server.azure_service_bus.integrationHecSub "Listens to"
|
|
integrationDatadogListener = server.events_processor.integration_listener -> server.azure_service_bus.integrationDatadogSub "Listens to"
|
|
integrationDatadogDelegate = server.events_processor.integration_listener -> server.events_processor.datadog_integration_handler "Delegates to"
|
|
integrationTeamsListener = server.events_processor.integration_listener -> server.azure_service_bus.integrationTeamsSub "Listens to"
|
|
integrationTeamsDelegate = server.events_processor.integration_listener -> server.events_processor.teams_integration_handler "Delegates to"
|
|
|
|
# RabbitMQ exchanges, queues, and routing
|
|
eventsWriteQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsWriteQueue "Subscribes via fan-out"
|
|
eventsDatadogQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsDatadogQueue "Subscribes via fan-out"
|
|
eventsHecQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsHecQueue "Subscribes via fan-out"
|
|
eventsSlackQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsSlackQueue "Subscribes via fan-out"
|
|
eventsTeamsQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsTeamsQueue "Subscribes via fan-out"
|
|
eventsWebhookQueue = server.rabbit_mq.event_exchange -> server.rabbit_mq.eventsWebhookQueue "Subscribes via fan-out"
|
|
integrationDatadogQueue = server.rabbit_mq.integration_exchange -> server.rabbit_mq.integrationDatadogQueue "Subscribes via filter on Datadog key"
|
|
integrationHecQueue = server.rabbit_mq.integration_exchange -> server.rabbit_mq.integrationHecQueue "Subscribes via filter on HEC key"
|
|
integrationSlackQueue = server.rabbit_mq.integration_exchange -> server.rabbit_mq.integrationSlackQueue "Subscribes via filter on Slack key"
|
|
integrationTeamsQueue = server.rabbit_mq.integration_exchange -> server.rabbit_mq.integrationTeamsQueue "Subscribes via filter on Teams key"
|
|
integrationWebhookQueue = server.rabbit_mq.integration_exchange -> server.rabbit_mq.integrationWebhookQueue "Subscribes via filter on Webhook key"
|
|
integrationDatadogRetryQueue = server.rabbit_mq.integrationDatadogRetryQueue -> server.rabbit_mq.integrationDatadogQueue "DLQ after configured retry timing"
|
|
integrationHecRetryQueue = server.rabbit_mq.integrationHecRetryQueue -> server.rabbit_mq.integrationHecQueue "DLQ after configured retry timing"
|
|
integrationSlackRetryQueue = server.rabbit_mq.integrationSlackRetryQueue -> server.rabbit_mq.integrationSlackQueue "DLQ after configured retry timing"
|
|
integrationTeamsRetryQueue = server.rabbit_mq.integrationTeamsRetryQueue -> server.rabbit_mq.integrationTeamsQueue "DLQ after configured retry timing"
|
|
integrationWebhookRetryQueue = server.rabbit_mq.integrationWebhookRetryQueue -> server.rabbit_mq.integrationWebhookQueue "DLQ after configured retry timing"
|
|
|
|
eventsWriteListener_events = server.events.event_listener -> server.rabbit_mq.eventsWriteQueue "Listens to"
|
|
eventsDatadogListener_events = server.events.event_listener -> server.rabbit_mq.eventsDatadogQueue "Listens to"
|
|
eventsHecListener_events = server.events.event_listener -> server.rabbit_mq.eventsHecQueue "Listens to"
|
|
eventsSlackListener_events = server.events.event_listener -> server.rabbit_mq.eventsSlackQueue "Listens to"
|
|
eventsTeamsListener_events = server.events.event_listener -> server.rabbit_mq.eventsTeamsQueue "Listens to"
|
|
eventsWebhookListener_events = server.events.event_listener -> server.rabbit_mq.eventsWebhookQueue "Listens to"
|
|
eventsWriteDelegate_events = server.events.event_listener -> server.events.event_repository_handler "Delegates to"
|
|
|
|
eventRepositoryDatabase_events = server.events.event_repository_handler -> server.database "Writes events to" tags "Self-Hosted-Only"
|
|
eventsIntegrationHandlerDelegate_events = server.events.event_listener -> server.events.event_integration_handler "Delegates to"
|
|
eventIntegrationHandlerDatabase_events = server.events.event_integration_handler -> server.database "Fetches template details from"
|
|
cacheDatabaseFetch_events = server.events.event_integrations_extended_cache -> server.database "Fetches configurations from" tags "Self-Hosted-Only"
|
|
eventIntegrationHandlerCache_events = server.events.event_integration_handler -> server.events.event_integrations_extended_cache "Fetches configurations from"
|
|
eventIntegrationHandlerFilter_events = server.events.event_integration_handler -> server.events.integration_filter_service "Runs filters"
|
|
eventIntegrationHandlerPublish_events = server.events.event_integration_handler -> server.rabbit_mq.integration_exchange "Publishes To"
|
|
|
|
integrationSlackListener_events = server.events.integration_listener -> server.rabbit_mq.integrationSlackQueue "Listens to"
|
|
integrationWebhookListener_events = server.events.integration_listener -> server.rabbit_mq.integrationWebhookQueue "Listens to"
|
|
integrationHecListener_events = server.events.integration_listener -> server.rabbit_mq.integrationHecQueue "Listens to"
|
|
integrationDatadogListener_events = server.events.integration_listener -> server.rabbit_mq.integrationDatadogQueue "Listens to"
|
|
integrationTeamsListener_events = server.events.integration_listener -> server.rabbit_mq.integrationTeamsQueue "Listens to"
|
|
integrationSlackDelegate_events = server.events.integration_listener -> server.events.slack_integration_handler "Delegates to"
|
|
integrationTeamsDelegate_events = server.events.integration_listener -> server.events.teams_integration_handler "Delegates to"
|
|
integrationDatadogDelegate_events = server.events.integration_listener -> server.events.datadog_integration_handler "Delegates to"
|
|
integrationWebhookDelegate_events = server.events.integration_listener -> server.events.webhook_integration_handler "Delegates to"
|
|
|
|
# External Services
|
|
slackToSlackService = server.events_processor.slack_integration_handler -> server.events_processor.slack_service "Uses"
|
|
slackServiceToSlack = server.events_processor.slack_service -> external_services.slack "Publishes configured events to"
|
|
teamsToTeamsService = server.events_processor.teams_integration_handler -> server.events_processor.teams_service "Uses"
|
|
teamsServiceToTeams = server.events_processor.teams_service -> external_services.teams "Publishes configured events to"
|
|
webhookHandlerHttpClient = server.events_processor.webhook_integration_handler -> server.events_processor.http_client "Uses"
|
|
datadogHandlerHttpClient = server.events_processor.datadog_integration_handler -> server.events_processor.http_client "Uses"
|
|
httpToCrowdstrike = server.events_processor.http_client -> external_services.crowdstrike "Publishes configured events to"
|
|
httpToDatadog = server.events_processor.http_client -> external_services.datadog "Publishes configured events to"
|
|
httpToSplunk = server.events_processor.http_client -> external_services.splunk "Publishes configured events to"
|
|
|
|
slackToSlackService_events = server.events.slack_integration_handler -> server.events.slack_service "Uses" tags "Self-Hosted-Only"
|
|
slackServiceToSlack_events = server.events.slack_service -> external_services.slack "Publishes configured events to" tags "Self-Hosted-Only"
|
|
teamsToTeamsService_events = server.events.teams_integration_handler -> server.events.teams_service "Uses" tags "Self-Hosted-Only"
|
|
teamsServiceToTeams_events = server.events.teams_service -> external_services.teams "Publishes configured events to" tags "Self-Hosted-Only"
|
|
webhookHandlerHttpClient_events = server.events.webhook_integration_handler -> server.events.http_client "Uses" tags "Self-Hosted-Only"
|
|
datadogHandlerHttpClient_events = server.events.datadog_integration_handler -> server.events.http_client "Uses" tags "Self-Hosted-Only"
|
|
httpToCrowdstrike_events = server.events.http_client -> external_services.crowdstrike "Publishes configured events to" tags "Self-Hosted-Only"
|
|
httpToDatadog_events = server.events.http_client -> external_services.datadog "Publishes configured events to" tags "Self-Hosted-Only"
|
|
httpToSplunk_events = server.events.http_client -> external_services.splunk "Publishes configured events to" tags "Self-Hosted-Only"
|