diff --git a/docs/img/structurizr-1-RelayContainersAllDetails.svg b/docs/img/structurizr-1-RelayContainersAllDetails.svg index 476fab91f..2cc84269a 100644 --- a/docs/img/structurizr-1-RelayContainersAllDetails.svg +++ b/docs/img/structurizr-1-RelayContainersAllDetails.svg @@ -1 +1 @@ -Wednesday, September 4, 2024 at 11:41 AM Central Daylight Time[Container] Relay (All Details)Google Analytics[Software System]Collects and reports interactioneventsStripe[Software System]Handles billing and paymentprocessingAccounts andSubscriptions[Software System]Mozilla Accounts and theSubscription Platform.Data Platform[Software System]The Mozilla Telemetry PlatformOperational MetricsPlatform[Software System]The Mozilla operational metrics andreporting platformSentry[Software System]Collects and organizes tracebacksand errorsFirefox Relay[Software System]Database[Container: PostgreSQL]Stores Relay User profiles, masks,abuse metrics, etc.Replica DB[Container: PostgreSQL]Read-only replica databaseLog Aggregator[Container]Collects logs from other containersMetrics Aggregator[Container: telegraf]Collects metrics from othercontainersProfiler[Container: Google Cloud Profiler]Collects CPU and timing profilesCache[Container: Redis]Stores runtime dataPhone Service[Container: Twilio]Provides phone numbers, sendsand receives SMS messages andvoice callsiQ Phone Service[Container: Inteliquent]Provides phone numbers, sendsand receives SMS messages andvoice callsEmail Encryption[Container: AWS KMS]Encrypts emails, notifications at restIncoming Email Storage[Container: AWS S3]Stores incoming mailEmail Dead-Letter Queue[Container: AWS SQS]Holds notifications for emails thatfail to processEmail Notification Queue[Container: AWS SQS]Holds notifications for emails,complaints, and bouncesEmail Pub/Sub[Container: AWS SNS]Published notifications tosubscribersEmail Sender[Container: Amazon SES]Sends emails from the RelaydomainEmail Receiver[Container: Amazon SES]Routes incoming emails,complaints, and bouncesCleanup Task[Container: Python - Django Command]Fixes data consistency issuesClean Replies Task[Container: Python - Django Command]Deletes expired reply dataSync Phone Dates Task[Container: Python - Django Command]Syncs Mozilla Accounts subscriptiondata for phone usersUpdate Phone LimitsTask[Container: Python - Django Command]Resets remaining texts and voiceminutes at start of monthSend Welcome EmailsTask[Container: Python - Django Command]Sends a welcome email to recentsubscribersDead-Letter Processor[Container: Python - Django Command]Deletes emails with processingerrorsWeb Application[Container: Python - Django Application]Delivers the Single-Page App;provides API, hooks, and callbacksEmail Processor[Container: Python - Django Command]Processes and forwards incomingemails; Processes complaint andbounce reportsUser Interfaces-Single-Page App[Container: JavaScript - Next.js]Provides marketing pages, userdashboards, onboarding flowsRelay Extension[Container: Extension for Firefox and Chrome]Suggests email masks on webpagesBitwarden, Other APIusers[Container: 3rd Party Tools]Integrates with Relay APIFirefox[Container: Desktop application for Windows,MacOS, and Linux]Suggests email mails on webpagesRelay User[Person]A user of Firefox Relay.Email Contact[Person]A person or business emailingwith a Relay User.Phone Contact[Person]A person or business calling ortexting with a Relay User.Sends metrics[HTTP]Remove vertex.Remove vertex.Remove link.Link options.Emits logs[stdout / stderr]Remove vertex.Remove vertex.Remove link.Link options.Sends profiles[Profile API]Remove link.Link options.Requests flowtracking, sendsusers for loginand subscriptions[HTTPS, OAuth 2, APIs]Remove link.Link options.Sends pageviews,interactions[HTTPS]Remove link.Link options.Requestspurchase tracking[HTTPS]Remove link.Link options.Uses API,requests staticassets[HTTPS]Remove link.Link options.Uses API, sendsUI events[HTTPS]Remove link.Link options.Scrapes data[Extension API]Remove link.Link options.Uses API[HTTPS]Remove vertex.Remove vertex.Remove link.Link options.Uses API[HTTPS]Remove link.Link options.Registers,managessubscription[HTTPS]Remove vertex.Remove link.Link options.UsesRemove link.Link options.Replicates data[Optional Relationship]Remove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.Send reply email[SMTP via replies email address]Remove vertex.Remove vertex.Remove link.Link options.Sends email[SMTP via user's email mask]Remove link.Link options.Sends texts,starts calls[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends texts,starts calls[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends emails,complaints,bounces[SQS]Remove vertex.Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Forwards email[SMTP via user's real email]Remove vertex.Remove link.Link options.Sends replies[SMTP via user's email mask]Remove link.Link options.Sends reply texts[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Forwards Texts,Calls[PSTN via user's real phone]Remove vertex.Remove link.Link options.Sends Gleanevents[JSON over GCP SNS]Remove link.Link options.Forwards Texts,Calls[PSTN via user's real phone]Remove vertex.Remove link.Link options.Sends reply texts[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends metrics[Telegraf]Remove vertex.Remove link.Link options.Queries[SQL]Remove vertex.Remove vertex.Remove link.Link options.Decrypts[KMS]Remove link.Link options.Decrypts[KMS]Remove link.Link options.Decrypts[KMS]Remove link.Link options.Moves failedemailsnotifications[SQS]Remove vertex.Remove vertex.Remove link.Link options.Decrypts[KMS]Remove vertex.Remove link.Link options.Adds emails,complaints,bounces[SQS]Remove vertex.Remove link.Link options.Notifies ofcomplaints andbounces[SNS]Remove link.Link options.Encryptscomplaints andbounces[KMS]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Uses[HTTPS, Stripe API]Remove link.Link options.Stores incomingemails[S3]Remove vertex.Remove vertex.Remove link.Link options.Encrypts[KMS]Remove link.Link options.Notifies of newemails[SNS]Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Readssubscription data[Subscription API]Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Sends welcomeemail[SES API]Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Reads, deletesemails[S3 API]Remove vertex.Remove vertex.Remove link.Link options.Forwards email(rarely)[SES API]Remove vertex.Remove vertex.Remove link.Link options.Polls[SQS API]Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Updates[Django ORM]Remove vertex.Remove vertex.Remove link.Link options.Uses[Django Cache API]Remove vertex.Remove link.Link options.Delegates userregistration,payments[HTTPS, OAuth 2, API]Remove link.Link options.Forwardsextension's UIevents[Measurement Protocol]Remove vertex.Remove link.Link options.Sends email[SES API]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Sends exceptions[HTTPS API]Remove vertex.Remove vertex.Remove link.Link options.Sends metrics[HTTP]Remove vertex.Remove vertex.Remove link.Link options.Emits logs[stdout / stderr]Remove vertex.Remove vertex.Remove link.Link options.Reserves phonenumber, routesSMS and calls[Stripe API, HTTPS callbacks]Remove vertex.Remove vertex.Remove link.Link options.Reserves phonenumber, routesSMS[Inteliquent API, HTTPS callbacks]Remove vertex.Remove vertex.Remove link.Link options.Sends Profiles[Profile API]Remove link.Link options.Updates[Django ORM]Remove vertex.Remove vertex.Remove link.Link options.Forwards email[SES API]Remove vertex.Remove link.Link options.Polls[SQS API]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Reads, deletesemails[S3 API]Remove link.Link options.Sends exceptions[HTTPS API]Remove vertex.Remove vertex.Remove link.Link options. \ No newline at end of file +Wednesday, September 4, 2024 at 1:07 PM Central Daylight Time[Container] Relay (All Details)Google Analytics[Software System]Collects and reports interactioneventsStripe[Software System]Handles billing and paymentprocessingAccounts andSubscriptions[Software System]Mozilla Accounts and theSubscription Platform.Data Platform[Software System]The Mozilla Telemetry PlatformOperational MetricsPlatform[Software System]The Mozilla operational metrics andreporting platformSentry[Software System]Collects and organizes tracebacksand errorsFirefox Relay[Software System]Database[Container: PostgreSQL]Stores Relay User profiles, masks,abuse metrics, etc.Replica DB[Container: PostgreSQL]Read-only replica databaseLog Aggregator[Container]Collects logs from other containersMetrics Aggregator[Container: telegraf]Collects metrics from othercontainersProfiler[Container: Google Cloud Profiler]Collects CPU and timing profilesCache[Container: Redis]Stores runtime dataPhone Service[Container: Twilio]Provides phone numbers, sendsand receives SMS messages andvoice callsiQ Phone Service[Container: Inteliquent]Provides phone numbers, sendsand receives SMS messages andvoice callsEmail Encryption[Container: AWS KMS]Encrypts emails, notifications at restIncoming Email Storage[Container: AWS S3]Stores incoming mailEmail Dead-Letter Queue[Container: AWS SQS]Holds notifications for emails thatfail to processEmail Notification Queue[Container: AWS SQS]Holds notifications for emails,complaints, and bouncesEmail Pub/Sub[Container: AWS SNS]Published notifications tosubscribersEmail Sender[Container: Amazon SES]Sends emails from the RelaydomainEmail Receiver[Container: Amazon SES]Routes incoming emails,complaints, and bouncesCleanup Task[Container: Python - Django Command]Fixes data consistency issuesClean Replies Task[Container: Python - Django Command]Deletes expired reply dataSync Phone Dates Task[Container: Python - Django Command]Syncs Mozilla Accounts subscriptiondata for phone usersUpdate Phone LimitsTask[Container: Python - Django Command]Resets remaining texts and voiceminutes at start of monthSend Welcome EmailsTask[Container: Python - Django Command]Sends a welcome email to recentsubscribersDead-Letter Processor[Container: Python - Django Command]Deletes emails with processingerrorsWeb Application[Container: Python - Django Application]Delivers the Single-Page App;provides API, hooks, and callbacksEmail Processor[Container: Python - Django Command]Processes and forwards incomingemails; Processes complaint andbounce reportsUser Interfaces-Single-Page App[Container: JavaScript - Next.js]Provides marketing pages, userdashboards, onboarding flowsRelay Extension[Container: Extension for Firefox and Chrome]Suggests email masks on webpagesBitwarden, Other APIusers[Container: 3rd Party Tools]Integrates with Relay APIFirefox[Container: Desktop application for Windows,MacOS, and Linux]Suggests email mails on webpagesRelay User[Person]A user of Firefox Relay.Email Contact[Person]A person or business emailingwith a Relay User.Phone Contact[Person]A person or business calling ortexting with a Relay User.Sends metrics[HTTP]Remove vertex.Remove vertex.Remove link.Link options.Emits logs[stdout / stderr]Remove vertex.Remove vertex.Remove link.Link options.Sends profiles[Profile API]Remove link.Link options.Requests flowtracking, sendsusers for loginand subscriptions[HTTPS, OAuth 2, APIs]Remove link.Link options.Sends pageviews,interactions[HTTPS]Remove link.Link options.Requestspurchase tracking[HTTPS]Remove link.Link options.Uses API,requests staticassets[HTTPS]Remove link.Link options.Uses API, sendsUI events[HTTPS]Remove link.Link options.Scrapes data[Extension API]Remove link.Link options.Uses API[HTTPS]Remove vertex.Remove vertex.Remove link.Link options.Uses API[HTTPS]Remove link.Link options.Registers,managessubscription[HTTPS]Remove vertex.Remove link.Link options.UsesRemove link.Link options.Replicates data[Optional Relationship]Remove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.Send reply email[SMTP via replies email address]Remove vertex.Remove vertex.Remove link.Link options.Sends email[SMTP via user's email mask]Remove link.Link options.Sends texts,starts calls[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends texts,starts calls[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends emails,complaints,bounces[SQS]Remove vertex.Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Forwards email[SMTP via user's real email]Remove vertex.Remove link.Link options.Sends replies[SMTP via user's email mask]Remove link.Link options.Sends reply texts[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Forwards Texts,Calls[PSTN via user's real phone]Remove vertex.Remove link.Link options.Sends Gleanevents[JSON over GCP SNS]Remove link.Link options.Forwards Texts,Calls[PSTN via user's real phone]Remove vertex.Remove link.Link options.Sends reply texts[PSTN via user's phone mask]Remove vertex.Remove link.Link options.Sends metrics[Telegraf]Remove vertex.Remove link.Link options.Queries[SQL]Remove vertex.Remove vertex.Remove link.Link options.Decrypts[KMS]Remove link.Link options.Decrypts[KMS]Remove link.Link options.Decrypts[KMS]Remove link.Link options.Moves failedemailsnotifications[SQS]Remove vertex.Remove vertex.Remove link.Link options.Decrypts[KMS]Remove vertex.Remove link.Link options.Adds emails,complaints,bounces[SQS]Remove vertex.Remove link.Link options.Notifies ofcomplaints andbounces[SNS]Remove link.Link options.Encryptscomplaints andbounces[KMS]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Uses[HTTPS, Stripe API]Remove link.Link options.Stores incomingemails[S3]Remove vertex.Remove vertex.Remove link.Link options.Encrypts[KMS]Remove link.Link options.Notifies of newemails[SNS]Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Readssubscription data[Subscription API]Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Sends welcomeemail[SES API]Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Reads, deletesemails[S3 API]Remove vertex.Remove vertex.Remove link.Link options.Forwards email(rarely)[SES API]Remove vertex.Remove vertex.Remove link.Link options.Polls[SQS API]Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.-Remove vertex.Remove vertex.Remove link.Link options.Updates[Django ORM]Remove vertex.Remove vertex.Remove link.Link options.Uses[Django Cache API]Remove vertex.Remove link.Link options.Delegates userregistration,payments[HTTPS, OAuth 2, API]Remove link.Link options.Forwardsextension's UIevents[Measurement Protocol]Remove vertex.Remove link.Link options.Sends email[SES API]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Sends exceptions[HTTPS API]Remove vertex.Remove vertex.Remove link.Link options.Sends metrics[HTTP]Remove vertex.Remove vertex.Remove link.Link options.Emits logs[stdout / stderr]Remove vertex.Remove vertex.Remove link.Link options.Reserves phonenumber, routesSMS and calls[Stripe API, HTTPS callbacks]Remove vertex.Remove vertex.Remove link.Link options.Reserves phonenumber, routesSMS[Inteliquent API, HTTPS callbacks]Remove vertex.Remove vertex.Remove link.Link options.Sends Profiles[Profile API]Remove link.Link options.Updates[Django ORM]Remove vertex.Remove vertex.Remove link.Link options.Forwards email[SES API]Remove vertex.Remove link.Link options.Polls[SQS API]Remove vertex.Remove vertex.Remove vertex.Remove link.Link options.Reads, deletesemails[S3 API]Remove link.Link options.Sends exceptions[HTTPS API]Remove vertex.Remove vertex.Remove link.Link options. \ No newline at end of file diff --git a/docs/system_diagrams.md b/docs/system_diagrams.md index 7488aa554..82bb1509f 100644 --- a/docs/system_diagrams.md +++ b/docs/system_diagrams.md @@ -11,7 +11,7 @@ Context and Containers. ## System Context Diagram This shows the relationships between the Relay software system, other software systems, -and users. +and users: [![Relay System Context](./img/structurizr-1-RelaySystemContext.svg)](./img/structurizr-1-RelaySystemContext.svg) @@ -21,20 +21,111 @@ Key: ## Containers Diagram This shows all the relationships between the containers (independently deployed -parts) of Relay and the other software systems. +parts) of Relay and the other software systems. Some containers have been grouped into +container collections, which are explored in more detail below. -_TODO_ Summary diagram. Combine all clients into one unit, all scheduled tasks, -all email processing, backend services. etc. +- **Web Application** - A monolithic Python / Django application that provides an API + and various other features. +- **Email Processor** - A backend Django application that handles emails, bounces, + and complaints from the Email Services. +- **Database** - A PostgreSQL database, used by other components +- **User Interfaces** (_Collection_) - The various ways Relay users manage masks +- **Email Services** (_Collection_) - The AWS systems that provide email sending and + receiving. +- **Other Managed Services** (_Collection_) - Other GCP services used to provide the + Relay application and talk to Mozilla backend systems +- **Periodic Tasks** (_Collection_) - Other backend Django applications that help provide the service -_TODO_ Zoom into clients +[![Relay Containers (High Level)](./img/structurizr-1-RelayContainersHighLevel.svg)](./img/structurizr-1-RelayContainersHighLevel.svg) -_TODO_ Zoom into scheduled tasks +Key: +![Relay Containers (High Level) Key](./img/structurizr-1-RelayContainersHighLevel-key.svg) -_TODO_ Zoom into email processing +### Container Diagram: Focus on User Interfaces + +Relay users have a variety of interfaces for viewing and updating their Relay account: + +- The single-page app ( for production), which acts as a + landing page to sell the services and as a dashboard to manage masks. +- The Firefox extension, which will detect and fill-in email masks +- Firefox, which integrates Relay into the form filling functionality +- Bitwarden and (unknown) API users, who also use the API to manage masks + +All of these interfaces talk to the API endpoints in the Web Application. Relay users +also interact with the email and phone services, when they receive and reply to email, +SMS messages, and voice calls. + +[![Relay Containers (User Interfaces)](./img/structurizr-1-RelayContainersUserInterfaces.svg)](./img/structurizr-1-RelayContainersUserInterfaces.svg) + +Key: +![Relay Containers (User Interfaces) Key](./img/structurizr-1-RelayContainersUserInterfaces-key.svg) + +### Container Diagram: Focus on Periodic Tasks + +The Relay service includes some background tasks that keep the service running without +slowing down API requests. These are scheduled (with cronjob) to run periodically: + +- **Sync Phone Dates Task** - Checks phone subscription data, detects cancellations or + term changes +- **Cleanup Task** - Performs a variety of data validation and cleanup jobs +- **Update Phone Limits Task** - Resets text and voice minutes at renewal date +- **Send welcome emails Task** - Send welcome emails to new Relay users +- **Clean Replies Task** - Deletes expired data needed to reply to a forwarded email +- **Dead-Letter Processor** - Deletes emails that are unable to be forwarded due to + encoding or other processing errors + +[![Relay Containers (Periodic Tasks)](./img/structurizr-1-RelayContainersPeriodicTasks.svg)](./img/structurizr-1-RelayContainersPeriodicTasks.svg) + +Key: +![Relay Containers (Periodic Tasks) Key](./img/structurizr-1-RelayContainersPeriodicTasks-key.svg) + +### Container Diagram: Focus on Email Processing + +Relay uses several AWS services to implement email forwarding: + +- **Email Sender** - Sends emails, and collects bounces and complaints +- **Email Receiver** - Receives emails for the Relay domains +- **Email Encryption** - Stores keys for encryption-at-rest, decrypts data for + authorized callers +- **Incoming Email Storage** - Stores the bodies of received emails +- **Email Pub/Sub** - Forwards notification of new emails, bounces, and complaints +- **Email Notification Queue** - Stores notifications of new emails, bounces, and + complaints. Hides notification that were recently read, to avoid double-processing. + Moves notifications to the dead-letter queue after they are read three times. +- **Email Dead-Letter Queue** - Stores notifications of new emails that could not + be processed after 3 attempts. + +[![Relay Containers (Email Services)](./img/structurizr-1-RelayContainersEmailServices.svg)](./img/structurizr-1-RelayContainersEmailServices.svg) + +Key: +![Relay Containers (Email Services) Key](./img/structurizr-1-RelayContainersEmailServices-key.svg) + +### Container Diagram: Focus on Other Managed Services + +Relay uses several GCP-hosted services besides the PostgreSQL database: + +- **Profiler** - Accepts timing profiles of execution runs. Used to determine what + sections of code are slow. +- **Cache** - Stores runtime data for the web application +- **Replica DB** - A read-only replica, being tested in some deployments as a way to + reduce load on the primary database. +- **Metrics Aggregator** - Collects statsd-style counter, gauge, and timer metrics from + Relay applications and tasks, as well a query the database for some aggregated user + statistics. +- **Log Aggregator** - Collects and combines logs from Relay applications, tasks, and + other GCP services. + +[![Relay Containers (Managed Services)](./img/structurizr-1-RelayContainersManagedServices.svg)](./img/structurizr-1-RelayContainersManagedServices.svg) + +Key: +![Relay Containers (Managed Services) Key](./img/structurizr-1-RelayContainersManagedServices-key.svg) ### Container, All Details -Here are all the Relay containers in a single diagram. +Here are all the Relay containers in a single diagram, with no container collections. It adds a few optional +containers: + +- **iQ Phone Service** - An alternative phone provider tested in some deployments [![Relay Containers (All Details)](./img/structurizr-1-RelayContainersAllDetails.svg)](./img/structurizr-1-RelayContainersAllDetails.svg) @@ -156,6 +247,7 @@ To update the diagrams: - Make changes to `workspace.dsl`. Refresh the page or use the "home" button to reload the model. - Adjust the layout in the webapp +- (Optional) Fine-tune the layout in `workshop.json` - Export the SVG images and move to the `img`, replacing existing images - Check in `workshop.dsl`, `workshop.json`, and any changed images diff --git a/docs/workspace.json b/docs/workspace.json index a5bbe9131..949082167 100644 --- a/docs/workspace.json +++ b/docs/workspace.json @@ -6,7 +6,7 @@ "documentation" : { }, "id" : 1, "lastModifiedAgent" : "structurizr-javascript", - "lastModifiedDate" : "2024-09-04T16:57:05Z", + "lastModifiedDate" : "2024-09-04T19:50:31Z", "model" : { "deploymentNodes" : [ { "containerInstances" : [ { @@ -21,14 +21,14 @@ "relationships" : [ { "description" : "Uses API, requests static assets", "destinationId" : "207", - "id" : "211", + "id" : "210", "linkedRelationshipId" : "109", "sourceId" : "176", "technology" : "HTTPS" }, { "description" : "Requests flow tracking, sends users for login and subscriptions", "destinationId" : "258", - "id" : "260", + "id" : "259", "linkedRelationshipId" : "105", "sourceId" : "176", "technology" : "HTTPS, OAuth 2, APIs" @@ -67,7 +67,7 @@ }, { "description" : "Uses API, sends UI events", "destinationId" : "207", - "id" : "210", + "id" : "208", "linkedRelationshipId" : "111", "sourceId" : "177", "technology" : "HTTPS" @@ -79,7 +79,7 @@ "instances" : "1", "name" : "Dev User Interfaces", "properties" : { - "structurizr.dsl.identifier" : "b8fd8433-c8e1-4f61-97e3-861b559bfee3" + "structurizr.dsl.identifier" : "53824762-fd02-48e6-91e3-cb3271bbede8" }, "tags" : "Element,Deployment Node" }, { @@ -97,7 +97,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "197", - "id" : "203", + "id" : "199", "linkedRelationshipId" : "29", "sourceId" : "182", "technology" : "KMS" @@ -134,7 +134,7 @@ "instances" : "1", "name" : "Amazon SQS", "properties" : { - "structurizr.dsl.identifier" : "e7948f62-f57e-449e-910f-faa73ff31959" + "structurizr.dsl.identifier" : "ca426843-ba54-4133-87be-72cf5228845d" }, "tags" : "Element,Deployment Node" }, { @@ -157,14 +157,14 @@ }, { "description" : "Decrypts", "destinationId" : "197", - "id" : "200", + "id" : "198", "linkedRelationshipId" : "34", "sourceId" : "186", "technology" : "KMS" }, { "description" : "Sends emails, complaints, bounces", "destinationId" : "207", - "id" : "208", + "id" : "209", "linkedRelationshipId" : "132", "sourceId" : "186", "technology" : "SQS" @@ -176,7 +176,7 @@ "instances" : "1", "name" : "Amazon SNS", "properties" : { - "structurizr.dsl.identifier" : "2f700dbd-4abb-4c0a-a876-c4f7294646c5" + "structurizr.dsl.identifier" : "d059c539-43d4-4b63-947f-55a69973819e" }, "tags" : "Element,Deployment Node" }, { @@ -206,7 +206,7 @@ }, { "description" : "Encrypts", "destinationId" : "197", - "id" : "198", + "id" : "202", "linkedRelationshipId" : "41", "sourceId" : "189", "technology" : "KMS" @@ -231,7 +231,7 @@ }, { "description" : "Encrypts complaints and bounces", "destinationId" : "197", - "id" : "202", + "id" : "203", "linkedRelationshipId" : "38", "sourceId" : "191", "technology" : "KMS" @@ -243,7 +243,7 @@ "instances" : "1", "name" : "Amazon SES", "properties" : { - "structurizr.dsl.identifier" : "92697039-6e16-4b5f-b1a3-2afd8ff03fad" + "structurizr.dsl.identifier" : "763f8723-8891-4083-bee3-294313fc375e" }, "tags" : "Element,Deployment Node" }, { @@ -259,7 +259,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "197", - "id" : "199", + "id" : "200", "linkedRelationshipId" : "27", "sourceId" : "194", "technology" : "KMS" @@ -271,7 +271,7 @@ "instances" : "1", "name" : "Amazon S3", "properties" : { - "structurizr.dsl.identifier" : "f9764642-099d-42e9-aa92-c870632d7c0e" + "structurizr.dsl.identifier" : "c042f5cf-384a-489c-83a0-cfe7cb6f8edd" }, "tags" : "Element,Deployment Node" }, { @@ -291,7 +291,7 @@ "instances" : "1", "name" : "Amazon KMS", "properties" : { - "structurizr.dsl.identifier" : "f580b777-4622-43dc-8155-3312c332d19b" + "structurizr.dsl.identifier" : "bf33aeee-de9b-4a46-9a4a-4f82495cd0d4" }, "tags" : "Element,Deployment Node" } ], @@ -300,7 +300,7 @@ "instances" : "1", "name" : "us-east-1 region", "properties" : { - "structurizr.dsl.identifier" : "c8c11d03-5589-4d9e-ab58-72bf1d37df86" + "structurizr.dsl.identifier" : "21388cb9-c3a0-475e-a3b4-37a9c5a40225" }, "tags" : "Element,Deployment Node" } ], @@ -309,7 +309,7 @@ "instances" : "1", "name" : "Amazon Web Services", "properties" : { - "structurizr.dsl.identifier" : "a1126623-b7d3-466f-8b31-780e9f1f7586" + "structurizr.dsl.identifier" : "4b411177-0a8d-450a-aaba-ab06596d63f6" }, "tags" : "Element,Deployment Node" }, { @@ -327,7 +327,7 @@ "relationships" : [ { "description" : "Sends email", "destinationId" : "191", - "id" : "209", + "id" : "211", "linkedRelationshipId" : "87", "sourceId" : "207", "technology" : "SES API" @@ -341,14 +341,14 @@ }, { "description" : "Updates", "destinationId" : "222", - "id" : "224", + "id" : "223", "linkedRelationshipId" : "82", "sourceId" : "207", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "243", - "id" : "251", + "id" : "249", "linkedRelationshipId" : "90", "sourceId" : "207", "technology" : "stdout / stderr" @@ -362,7 +362,7 @@ }, { "description" : "Delegates user registration, payments", "destinationId" : "258", - "id" : "261", + "id" : "260", "linkedRelationshipId" : "84", "sourceId" : "207", "technology" : "HTTPS, OAuth 2, API" @@ -376,7 +376,7 @@ }, { "description" : "Sends exceptions", "destinationId" : "267", - "id" : "275", + "id" : "273", "linkedRelationshipId" : "88", "sourceId" : "207", "technology" : "HTTPS API" @@ -402,7 +402,7 @@ "instances" : "1", "name" : "web", "properties" : { - "structurizr.dsl.identifier" : "d4759c23-921a-48df-a8e3-958a5fb8ee2c" + "structurizr.dsl.identifier" : "c94cf8e1-9bc3-4d01-a161-52e9c8275c2f" }, "tags" : "Element,Deployment Node" }, { @@ -439,7 +439,7 @@ }, { "description" : "Updates", "destinationId" : "222", - "id" : "223", + "id" : "224", "linkedRelationshipId" : "95", "sourceId" : "213", "technology" : "Django ORM" @@ -472,7 +472,7 @@ "instances" : "1", "name" : "worker", "properties" : { - "structurizr.dsl.identifier" : "c12a0cf1-da1f-4079-af72-c74a21e24904" + "structurizr.dsl.identifier" : "8a92fa7b-51fb-4e5d-8ea5-7ee1b14db1d0" }, "tags" : "Element,Deployment Node" } ], @@ -481,7 +481,7 @@ "instances" : "1", "name" : "Dynos", "properties" : { - "structurizr.dsl.identifier" : "664420b3-d97d-48a7-b0f1-3bb6f7fc9a72" + "structurizr.dsl.identifier" : "b901d2a8-34ff-441f-aaaf-62f67be7b472" }, "tags" : "Element,Deployment Node" }, { @@ -502,7 +502,7 @@ "instances" : "1", "name" : "Heroku Data for Redis", "properties" : { - "structurizr.dsl.identifier" : "b98b5241-73c1-4674-9a61-6bc56f13e89d" + "structurizr.dsl.identifier" : "fead0adf-eb7d-46db-8100-8bd944ccb401" }, "tags" : "Element,Deployment Node" }, { @@ -522,7 +522,7 @@ "instances" : "1", "name" : "Heroku Postgres", "properties" : { - "structurizr.dsl.identifier" : "48fb6d39-42ac-4c5e-82f1-1ac2456a9a52" + "structurizr.dsl.identifier" : "bb7f4d68-c0f1-40b3-84d9-c87cac48bd1a" }, "tags" : "Element,Deployment Node" }, { @@ -542,12 +542,12 @@ "sourceId" : "226" }, { "destinationId" : "243", - "id" : "244", + "id" : "246", "linkedRelationshipId" : "46", "sourceId" : "226" }, { "destinationId" : "267", - "id" : "268", + "id" : "270", "linkedRelationshipId" : "48", "sourceId" : "226" } ], @@ -568,12 +568,12 @@ "sourceId" : "228" }, { "destinationId" : "243", - "id" : "246", + "id" : "248", "linkedRelationshipId" : "52", "sourceId" : "228" }, { "destinationId" : "267", - "id" : "270", + "id" : "272", "linkedRelationshipId" : "54", "sourceId" : "228" } ], @@ -594,19 +594,19 @@ "sourceId" : "230" }, { "destinationId" : "243", - "id" : "248", + "id" : "250", "linkedRelationshipId" : "59", "sourceId" : "230" }, { "description" : "Reads subscription data", "destinationId" : "258", - "id" : "259", + "id" : "261", "linkedRelationshipId" : "56", "sourceId" : "230", "technology" : "Subscription API" }, { "destinationId" : "267", - "id" : "272", + "id" : "274", "linkedRelationshipId" : "61", "sourceId" : "230" } ], @@ -627,12 +627,12 @@ "sourceId" : "232" }, { "destinationId" : "243", - "id" : "250", + "id" : "251", "linkedRelationshipId" : "64", "sourceId" : "232" }, { "destinationId" : "267", - "id" : "274", + "id" : "275", "linkedRelationshipId" : "66", "sourceId" : "232" } ], @@ -647,25 +647,25 @@ "structurizr.dsl.identifier" : "heroku_task_welcome" }, "relationships" : [ { - "destinationId" : "222", - "id" : "235", - "linkedRelationshipId" : "69", - "sourceId" : "234" - }, { "description" : "Sends welcome email", "destinationId" : "191", - "id" : "236", + "id" : "235", "linkedRelationshipId" : "68", "sourceId" : "234", "technology" : "SES API" + }, { + "destinationId" : "222", + "id" : "236", + "linkedRelationshipId" : "69", + "sourceId" : "234" }, { "destinationId" : "243", - "id" : "247", + "id" : "244", "linkedRelationshipId" : "70", "sourceId" : "234" }, { "destinationId" : "267", - "id" : "271", + "id" : "268", "linkedRelationshipId" : "72", "sourceId" : "234" } ], @@ -680,17 +680,19 @@ "structurizr.dsl.identifier" : "heroku_task_dql" }, "relationships" : [ { + "description" : "Polls", + "destinationId" : "182", + "id" : "238", + "linkedRelationshipId" : "76", + "sourceId" : "237", + "technology" : "SQS API" + }, { "description" : "Reads, deletes emails", "destinationId" : "194", - "id" : "238", + "id" : "239", "linkedRelationshipId" : "74", "sourceId" : "237", "technology" : "S3 API" - }, { - "destinationId" : "222", - "id" : "239", - "linkedRelationshipId" : "77", - "sourceId" : "237" }, { "description" : "Forwards email (rarely)", "destinationId" : "191", @@ -699,20 +701,18 @@ "sourceId" : "237", "technology" : "SES API" }, { - "description" : "Polls", - "destinationId" : "182", + "destinationId" : "222", "id" : "241", - "linkedRelationshipId" : "76", - "sourceId" : "237", - "technology" : "SQS API" + "linkedRelationshipId" : "77", + "sourceId" : "237" }, { "destinationId" : "243", - "id" : "249", + "id" : "247", "linkedRelationshipId" : "78", "sourceId" : "237" }, { "destinationId" : "267", - "id" : "273", + "id" : "271", "linkedRelationshipId" : "80", "sourceId" : "237" } ], @@ -723,7 +723,7 @@ "instances" : "1", "name" : "Heroku Scheduler", "properties" : { - "structurizr.dsl.identifier" : "75cb4998-1ef1-4b7a-be1b-2502e49dbf5d" + "structurizr.dsl.identifier" : "ccdc844e-8f87-4988-b134-7a2ddf5ea6b1" }, "tags" : "Element,Deployment Node" }, { @@ -743,7 +743,7 @@ "instances" : "1", "name" : "Papertrail", "properties" : { - "structurizr.dsl.identifier" : "ab7b2b16-f271-455c-bdda-5b082bf67c82" + "structurizr.dsl.identifier" : "92d3927b-0f8b-4208-8328-951d0d19190f" }, "tags" : "Element,Deployment Node" } ], @@ -752,7 +752,7 @@ "instances" : "1", "name" : "Heroku Add-Ons", "properties" : { - "structurizr.dsl.identifier" : "ada86d9b-2e4c-4319-84e2-c1c01b4409f3" + "structurizr.dsl.identifier" : "5a6d2092-cae7-4420-8072-fb6abcc69f17" }, "tags" : "Element,Deployment Node" } ], @@ -761,7 +761,7 @@ "instances" : "1", "name" : "Heroku", "properties" : { - "structurizr.dsl.identifier" : "cb5d3d59-b274-4e52-9305-d9f31efef3bc" + "structurizr.dsl.identifier" : "569713d6-b06e-4aef-ac69-f2a7f31cc802" }, "tags" : "Element,Deployment Node" }, { @@ -782,7 +782,7 @@ "instances" : "1", "name" : "Cloud Profiler", "properties" : { - "structurizr.dsl.identifier" : "55182572-c450-4fb5-ad7d-52b17af58155" + "structurizr.dsl.identifier" : "f4b66b5d-2e2c-48ff-8bb9-047118a7bf65" }, "tags" : "Element,Deployment Node" } ], @@ -791,7 +791,7 @@ "instances" : "1", "name" : "Google Cloud Platform", "properties" : { - "structurizr.dsl.identifier" : "6a89acf2-8faf-4964-8be8-c8f9a5b07388" + "structurizr.dsl.identifier" : "781bc6e6-a9d7-46cc-9a91-7ad4522ea8a1" }, "tags" : "Element,Deployment Node" }, { @@ -800,7 +800,7 @@ "instances" : "1", "name" : "accounts.stage.mozaws.net", "properties" : { - "structurizr.dsl.identifier" : "15588fa8-46de-491e-b68f-874b32630284" + "structurizr.dsl.identifier" : "7e45c3fc-bf20-421f-b231-1784bd4c1ea6" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -828,7 +828,7 @@ "instances" : "1", "name" : "analytics.google.com", "properties" : { - "structurizr.dsl.identifier" : "224277d4-7e22-4684-9f8d-7c5a8189c4a1" + "structurizr.dsl.identifier" : "fce45de2-2b1d-443a-a673-f1e40b6f8865" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -848,7 +848,7 @@ "instances" : "1", "name" : "mozilla.sentry.io", "properties" : { - "structurizr.dsl.identifier" : "5b0aedee-d0de-41d5-96ce-e75e70645735" + "structurizr.dsl.identifier" : "880bc48e-8c8a-4925-9c1a-4f7fc78386fe" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -868,7 +868,7 @@ "instances" : "1", "name" : "Stripe", "properties" : { - "structurizr.dsl.identifier" : "9f5346ca-083b-48cd-91fe-2999c91c0ef1" + "structurizr.dsl.identifier" : "af01eb38-c5b2-448a-a9a3-1fc44e77fccc" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -900,7 +900,7 @@ "instances" : "1", "name" : "twilio.com", "properties" : { - "structurizr.dsl.identifier" : "7fc2a0d9-04d7-4cc3-a452-28a68f264601" + "structurizr.dsl.identifier" : "51c84dd4-9b7e-4242-b722-5cfba6146fb5" }, "tags" : "Element,Deployment Node" }, { @@ -920,7 +920,7 @@ "instances" : "1", "name" : "inteliquent.com", "properties" : { - "structurizr.dsl.identifier" : "0f06bd8c-9dff-4774-a48c-da9b2291448c" + "structurizr.dsl.identifier" : "5bcf9675-ec4d-4889-b1d3-d23c1887a909" }, "tags" : "Element,Deployment Node" }, { @@ -936,35 +936,35 @@ "relationships" : [ { "description" : "Uses API, requests static assets", "destinationId" : "319", - "id" : "320", + "id" : "321", "linkedRelationshipId" : "109", "sourceId" : "287", "technology" : "HTTPS" }, { "description" : "Uses API, requests static assets", "destinationId" : "326", - "id" : "327", + "id" : "328", "linkedRelationshipId" : "109", "sourceId" : "287", "technology" : "HTTPS" }, { "description" : "Requests flow tracking, sends users for login and subscriptions", "destinationId" : "408", - "id" : "409", + "id" : "411", "linkedRelationshipId" : "105", "sourceId" : "287", "technology" : "HTTPS, OAuth 2, APIs" }, { "description" : "Sends page views, interactions", "destinationId" : "414", - "id" : "415", + "id" : "416", "linkedRelationshipId" : "106", "sourceId" : "287", "technology" : "HTTPS" }, { "description" : "Requests purchase tracking", "destinationId" : "422", - "id" : "423", + "id" : "424", "linkedRelationshipId" : "107", "sourceId" : "287", "technology" : "HTTPS" @@ -973,7 +973,7 @@ "destinationId" : "404", "id" : "449", "properties" : { - "structurizr.dsl.identifier" : "6651728a-e8bc-4d92-a717-6e03015f9e05" + "structurizr.dsl.identifier" : "ef10db3e-4256-431a-81ee-5858219b4cfb" }, "sourceId" : "287", "tags" : "Relationship" @@ -998,14 +998,14 @@ }, { "description" : "Uses API, sends UI events", "destinationId" : "319", - "id" : "321", + "id" : "323", "linkedRelationshipId" : "111", "sourceId" : "288", "technology" : "HTTPS" }, { "description" : "Uses API, sends UI events", "destinationId" : "326", - "id" : "328", + "id" : "330", "linkedRelationshipId" : "111", "sourceId" : "288", "technology" : "HTTPS" @@ -1014,7 +1014,7 @@ "destinationId" : "404", "id" : "450", "properties" : { - "structurizr.dsl.identifier" : "d1694edd-b77f-4ae6-8f5e-deb81ca4c224" + "structurizr.dsl.identifier" : "e11efac6-2327-499c-8783-5d421f284493" }, "sourceId" : "288", "tags" : "Relationship" @@ -1026,7 +1026,7 @@ "instances" : "1", "name" : "Stage User Interfaces", "properties" : { - "structurizr.dsl.identifier" : "4ffd528a-8e80-4664-9a79-8ec87f92c150" + "structurizr.dsl.identifier" : "24011918-5786-4086-96f9-b7a57eaf3a9b" }, "tags" : "Element,Deployment Node" }, { @@ -1044,7 +1044,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "308", - "id" : "311", + "id" : "314", "linkedRelationshipId" : "29", "sourceId" : "293", "technology" : "KMS" @@ -1069,7 +1069,7 @@ }, { "description" : "Decrypts", "destinationId" : "308", - "id" : "309", + "id" : "313", "linkedRelationshipId" : "31", "sourceId" : "294", "technology" : "KMS" @@ -1081,7 +1081,7 @@ "instances" : "1", "name" : "Amazon SQS", "properties" : { - "structurizr.dsl.identifier" : "3a3624bf-a43a-4f89-902d-a95f6cba7598" + "structurizr.dsl.identifier" : "f25d46b3-4b81-41b0-9ae3-3215238ca0b4" }, "tags" : "Element,Deployment Node" }, { @@ -1104,7 +1104,7 @@ }, { "description" : "Decrypts", "destinationId" : "308", - "id" : "312", + "id" : "311", "linkedRelationshipId" : "34", "sourceId" : "297", "technology" : "KMS" @@ -1127,7 +1127,7 @@ "destinationId" : "404", "id" : "454", "properties" : { - "structurizr.dsl.identifier" : "fd856130-b810-4244-bb99-e53f98b7f2e9" + "structurizr.dsl.identifier" : "e9caf29c-00a4-45e0-b7c4-d7e39ea49446" }, "sourceId" : "297", "tags" : "Relationship,Optional Relationship", @@ -1140,7 +1140,7 @@ "instances" : "1", "name" : "Amazon SNS", "properties" : { - "structurizr.dsl.identifier" : "aabaeb99-69d1-430b-a877-b199dd0c24fe" + "structurizr.dsl.identifier" : "5094930e-a807-489f-a279-f0f91ab787ce" }, "tags" : "Element,Deployment Node" }, { @@ -1170,7 +1170,7 @@ }, { "description" : "Encrypts", "destinationId" : "308", - "id" : "310", + "id" : "309", "linkedRelationshipId" : "41", "sourceId" : "300", "technology" : "KMS" @@ -1195,7 +1195,7 @@ }, { "description" : "Encrypts complaints and bounces", "destinationId" : "308", - "id" : "314", + "id" : "310", "linkedRelationshipId" : "38", "sourceId" : "302", "technology" : "KMS" @@ -1207,7 +1207,7 @@ "instances" : "1", "name" : "Amazon SES", "properties" : { - "structurizr.dsl.identifier" : "d696f12c-9dc8-4cfe-bb19-d89ea4e69cf5" + "structurizr.dsl.identifier" : "f6a4a265-1e9e-4b4d-8862-29b0cd1f8f51" }, "tags" : "Element,Deployment Node" }, { @@ -1223,7 +1223,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "308", - "id" : "313", + "id" : "312", "linkedRelationshipId" : "27", "sourceId" : "305", "technology" : "KMS" @@ -1235,7 +1235,7 @@ "instances" : "1", "name" : "Amazon S3", "properties" : { - "structurizr.dsl.identifier" : "fcce8bb8-3666-4719-a2e7-2649ca3d6b27" + "structurizr.dsl.identifier" : "8868712a-8bdf-4ab5-8971-9ed8cd460543" }, "tags" : "Element,Deployment Node" }, { @@ -1255,7 +1255,7 @@ "instances" : "1", "name" : "Amazon KMS", "properties" : { - "structurizr.dsl.identifier" : "a5eea8a4-e094-4a9c-aa85-81a676678959" + "structurizr.dsl.identifier" : "1c7a50bf-1457-4579-994d-2b932cef163b" }, "tags" : "Element,Deployment Node" } ], @@ -1264,7 +1264,7 @@ "instances" : "1", "name" : "us-east-1 region", "properties" : { - "structurizr.dsl.identifier" : "5efe4002-ead1-4b23-b00d-99708d577165" + "structurizr.dsl.identifier" : "c41e6f39-74a7-44c9-b260-fbd29911c31b" }, "tags" : "Element,Deployment Node" } ], @@ -1273,7 +1273,7 @@ "instances" : "1", "name" : "Amazon Web Services", "properties" : { - "structurizr.dsl.identifier" : "1f7b087d-6c29-438e-b5c6-8f33f79c47f0" + "structurizr.dsl.identifier" : "ad83dcf9-7e96-49f7-ad23-5e17207e4e63" }, "tags" : "Element,Deployment Node" }, { @@ -1291,70 +1291,70 @@ "relationships" : [ { "description" : "Sends email", "destinationId" : "302", - "id" : "323", + "id" : "320", "linkedRelationshipId" : "87", "sourceId" : "319", "technology" : "SES API" }, { "description" : "Sends metrics", "destinationId" : "357", - "id" : "361", + "id" : "363", "linkedRelationshipId" : "89", "sourceId" : "319", "technology" : "HTTP" }, { "description" : "Updates", "destinationId" : "368", - "id" : "372", + "id" : "375", "linkedRelationshipId" : "82", "sourceId" : "319", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "382", - "id" : "386", + "id" : "388", "linkedRelationshipId" : "90", "sourceId" : "319", "technology" : "stdout / stderr" }, { "description" : "Uses", "destinationId" : "395", - "id" : "396", + "id" : "397", "linkedRelationshipId" : "83", "sourceId" : "319", "technology" : "Django Cache API" }, { "description" : "Sends Profiles", "destinationId" : "399", - "id" : "401", + "id" : "402", "linkedRelationshipId" : "93", "sourceId" : "319", "technology" : "Profile API" }, { "description" : "Delegates user registration, payments", "destinationId" : "408", - "id" : "411", + "id" : "412", "linkedRelationshipId" : "84", "sourceId" : "319", "technology" : "HTTPS, OAuth 2, API" }, { "description" : "Forwards extension's UI events", "destinationId" : "414", - "id" : "416", + "id" : "417", "linkedRelationshipId" : "85", "sourceId" : "319", "technology" : "Measurement Protocol" }, { "description" : "Sends exceptions", "destinationId" : "426", - "id" : "429", + "id" : "434", "linkedRelationshipId" : "88", "sourceId" : "319", "technology" : "HTTPS API" }, { "description" : "Reserves phone number, routes SMS and calls", "destinationId" : "440", - "id" : "441", + "id" : "442", "linkedRelationshipId" : "91", "sourceId" : "319", "technology" : "Stripe API, HTTPS callbacks" @@ -1376,7 +1376,7 @@ "destinationId" : "319", "id" : "445", "properties" : { - "structurizr.dsl.identifier" : "45e709e8-a3f6-4905-9ab0-347fcde0f02e" + "structurizr.dsl.identifier" : "7a37e595-6042-4496-9a35-8efa9225cc3c" }, "sourceId" : "318", "tags" : "Relationship", @@ -1387,7 +1387,7 @@ "instances" : "3", "name" : "app", "properties" : { - "structurizr.dsl.identifier" : "63a54788-0a63-40a1-b3b8-216bc16004dd" + "structurizr.dsl.identifier" : "14dff4e1-9ab5-485c-96a3-cc21612a4aa2" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1405,70 +1405,70 @@ "relationships" : [ { "description" : "Sends email", "destinationId" : "302", - "id" : "330", + "id" : "327", "linkedRelationshipId" : "87", "sourceId" : "326", "technology" : "SES API" }, { "description" : "Sends metrics", "destinationId" : "357", - "id" : "363", + "id" : "361", "linkedRelationshipId" : "89", "sourceId" : "326", "technology" : "HTTP" }, { "description" : "Updates", "destinationId" : "368", - "id" : "374", + "id" : "373", "linkedRelationshipId" : "82", "sourceId" : "326", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "382", - "id" : "388", + "id" : "386", "linkedRelationshipId" : "90", "sourceId" : "326", "technology" : "stdout / stderr" }, { "description" : "Uses", "destinationId" : "395", - "id" : "397", + "id" : "396", "linkedRelationshipId" : "83", "sourceId" : "326", "technology" : "Django Cache API" }, { "description" : "Sends Profiles", "destinationId" : "399", - "id" : "402", + "id" : "401", "linkedRelationshipId" : "93", "sourceId" : "326", "technology" : "Profile API" }, { "description" : "Delegates user registration, payments", "destinationId" : "408", - "id" : "412", + "id" : "409", "linkedRelationshipId" : "84", "sourceId" : "326", "technology" : "HTTPS, OAuth 2, API" }, { "description" : "Forwards extension's UI events", "destinationId" : "414", - "id" : "417", + "id" : "415", "linkedRelationshipId" : "85", "sourceId" : "326", "technology" : "Measurement Protocol" }, { "description" : "Sends exceptions", "destinationId" : "426", - "id" : "431", + "id" : "429", "linkedRelationshipId" : "88", "sourceId" : "326", "technology" : "HTTPS API" }, { "description" : "Reserves phone number, routes SMS and calls", "destinationId" : "440", - "id" : "442", + "id" : "441", "linkedRelationshipId" : "91", "sourceId" : "326", "technology" : "Stripe API, HTTPS callbacks" @@ -1490,7 +1490,7 @@ "destinationId" : "326", "id" : "446", "properties" : { - "structurizr.dsl.identifier" : "3720fa51-c3bf-4408-b05f-b970b5680398" + "structurizr.dsl.identifier" : "839e4798-d31b-4df0-99d3-73b647a29c52" }, "sourceId" : "325", "tags" : "Relationship", @@ -1501,7 +1501,7 @@ "instances" : "1", "name" : "app-canary", "properties" : { - "structurizr.dsl.identifier" : "06102d34-7b74-4095-ab67-42d81ca08d63" + "structurizr.dsl.identifier" : "a7b51302-3d6a-4a37-ade9-ddec321d13d4" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1517,22 +1517,22 @@ }, "relationships" : [ { "destinationId" : "357", - "id" : "359", + "id" : "364", "linkedRelationshipId" : "47", "sourceId" : "332" }, { "destinationId" : "368", - "id" : "370", + "id" : "376", "linkedRelationshipId" : "45", "sourceId" : "332" }, { "destinationId" : "382", - "id" : "384", + "id" : "389", "linkedRelationshipId" : "46", "sourceId" : "332" }, { "destinationId" : "426", - "id" : "428", + "id" : "435", "linkedRelationshipId" : "48", "sourceId" : "332" } ], @@ -1543,7 +1543,7 @@ "instances" : "1", "name" : "cleanup", "properties" : { - "structurizr.dsl.identifier" : "2b6a31bd-0651-4457-af88-cbbc7ff8ca87" + "structurizr.dsl.identifier" : "d5acd841-9357-41b0-8830-961c6e2e8305" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1558,12 +1558,12 @@ "structurizr.dsl.identifier" : "stage_task_emails" }, "relationships" : [ { - "description" : "Polls", - "destinationId" : "294", + "description" : "Forwards email", + "destinationId" : "302", "id" : "335", - "linkedRelationshipId" : "97", + "linkedRelationshipId" : "96", "sourceId" : "334", - "technology" : "SQS API" + "technology" : "SES API" }, { "description" : "Reads, deletes emails", "destinationId" : "305", @@ -1572,30 +1572,30 @@ "sourceId" : "334", "technology" : "S3 API" }, { - "description" : "Forwards email", - "destinationId" : "302", + "description" : "Polls", + "destinationId" : "294", "id" : "337", - "linkedRelationshipId" : "96", + "linkedRelationshipId" : "97", "sourceId" : "334", - "technology" : "SES API" + "technology" : "SQS API" }, { "description" : "Sends metrics", "destinationId" : "357", - "id" : "358", + "id" : "359", "linkedRelationshipId" : "100", "sourceId" : "334", "technology" : "HTTP" }, { "description" : "Updates", "destinationId" : "368", - "id" : "369", + "id" : "370", "linkedRelationshipId" : "95", "sourceId" : "334", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "382", - "id" : "383", + "id" : "384", "linkedRelationshipId" : "101", "sourceId" : "334", "technology" : "stdout / stderr" @@ -1621,7 +1621,7 @@ "instances" : "6", "name" : "emails", "properties" : { - "structurizr.dsl.identifier" : "aa05d548-8ca0-488a-99d9-9fe9213abf42" + "structurizr.dsl.identifier" : "cd47cb76-bbc4-4ef6-ad90-9059f0d98a38" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1637,22 +1637,22 @@ }, "relationships" : [ { "destinationId" : "357", - "id" : "362", + "id" : "365", "linkedRelationshipId" : "53", "sourceId" : "339" }, { "destinationId" : "368", - "id" : "373", + "id" : "377", "linkedRelationshipId" : "51", "sourceId" : "339" }, { "destinationId" : "382", - "id" : "387", + "id" : "390", "linkedRelationshipId" : "52", "sourceId" : "339" }, { "destinationId" : "426", - "id" : "430", + "id" : "431", "linkedRelationshipId" : "54", "sourceId" : "339" } ], @@ -1663,7 +1663,7 @@ "instances" : "1", "name" : "replys [sic]", "properties" : { - "structurizr.dsl.identifier" : "9f2f4b76-b95b-4204-8d4d-30a5d918b0ce" + "structurizr.dsl.identifier" : "0f7fe243-c31d-4887-a352-6bb5900b62e6" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1678,19 +1678,19 @@ "structurizr.dsl.identifier" : "stage_task_dlq" }, "relationships" : [ { - "description" : "Polls", - "destinationId" : "293", - "id" : "342", - "linkedRelationshipId" : "76", - "sourceId" : "341", - "technology" : "SQS API" - }, { "description" : "Reads, deletes emails", "destinationId" : "305", - "id" : "343", + "id" : "342", "linkedRelationshipId" : "74", "sourceId" : "341", "technology" : "S3 API" + }, { + "description" : "Polls", + "destinationId" : "293", + "id" : "343", + "linkedRelationshipId" : "76", + "sourceId" : "341", + "technology" : "SQS API" }, { "description" : "Forwards email (rarely)", "destinationId" : "302", @@ -1700,22 +1700,22 @@ "technology" : "SES API" }, { "destinationId" : "357", - "id" : "364", + "id" : "360", "linkedRelationshipId" : "79", "sourceId" : "341" }, { "destinationId" : "368", - "id" : "375", + "id" : "371", "linkedRelationshipId" : "77", "sourceId" : "341" }, { "destinationId" : "382", - "id" : "389", + "id" : "385", "linkedRelationshipId" : "78", "sourceId" : "341" }, { "destinationId" : "426", - "id" : "432", + "id" : "428", "linkedRelationshipId" : "80", "sourceId" : "341" } ], @@ -1726,7 +1726,7 @@ "instances" : "1", "name" : "sqs-dlq", "properties" : { - "structurizr.dsl.identifier" : "f40f033d-e7ff-4e61-ac40-5034a12cc130" + "structurizr.dsl.identifier" : "c8ff3b9a-2fdc-4a21-9408-98e06262eaa0" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1742,17 +1742,17 @@ }, "relationships" : [ { "destinationId" : "357", - "id" : "360", + "id" : "362", "linkedRelationshipId" : "60", "sourceId" : "346" }, { "destinationId" : "368", - "id" : "371", + "id" : "374", "linkedRelationshipId" : "58", "sourceId" : "346" }, { "destinationId" : "382", - "id" : "385", + "id" : "387", "linkedRelationshipId" : "59", "sourceId" : "346" }, { @@ -1764,7 +1764,7 @@ "technology" : "Subscription API" }, { "destinationId" : "426", - "id" : "434", + "id" : "430", "linkedRelationshipId" : "61", "sourceId" : "346" } ], @@ -1775,7 +1775,7 @@ "instances" : "1", "name" : "syncphones", "properties" : { - "structurizr.dsl.identifier" : "b89fc925-4b30-44a8-81f3-0e90799019c5" + "structurizr.dsl.identifier" : "82eccc40-998f-4a1d-94ec-452d1855d404" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1791,22 +1791,22 @@ }, "relationships" : [ { "destinationId" : "357", - "id" : "365", + "id" : "366", "linkedRelationshipId" : "65", "sourceId" : "348" }, { "destinationId" : "368", - "id" : "376", + "id" : "378", "linkedRelationshipId" : "63", "sourceId" : "348" }, { "destinationId" : "382", - "id" : "390", + "id" : "391", "linkedRelationshipId" : "64", "sourceId" : "348" }, { "destinationId" : "426", - "id" : "433", + "id" : "432", "linkedRelationshipId" : "66", "sourceId" : "348" } ], @@ -1817,7 +1817,7 @@ "instances" : "1", "name" : "updphones", "properties" : { - "structurizr.dsl.identifier" : "1f8486c6-26a8-477c-83e9-bdd4b956b71e" + "structurizr.dsl.identifier" : "1e7f4156-931a-4cd3-987f-103595647321" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1840,22 +1840,22 @@ "technology" : "SES API" }, { "destinationId" : "357", - "id" : "366", + "id" : "358", "linkedRelationshipId" : "71", "sourceId" : "350" }, { "destinationId" : "368", - "id" : "378", + "id" : "369", "linkedRelationshipId" : "69", "sourceId" : "350" }, { "destinationId" : "382", - "id" : "391", + "id" : "383", "linkedRelationshipId" : "70", "sourceId" : "350" }, { "destinationId" : "426", - "id" : "435", + "id" : "433", "linkedRelationshipId" : "72", "sourceId" : "350" } ], @@ -1866,7 +1866,7 @@ "instances" : "1", "name" : "welcome", "properties" : { - "structurizr.dsl.identifier" : "e52b2489-f8df-4f61-8785-2a715e93f0f0" + "structurizr.dsl.identifier" : "61220f46-30e1-4936-b278-124cda62d775" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -1886,7 +1886,7 @@ "destinationId" : "318", "id" : "443", "properties" : { - "structurizr.dsl.identifier" : "2b5e8596-f31c-418b-9911-6264b3daa39c" + "structurizr.dsl.identifier" : "bcd64366-ac12-4fbd-9d64-c9c2b9b49745" }, "sourceId" : "353", "tags" : "Relationship", @@ -1896,7 +1896,7 @@ "destinationId" : "325", "id" : "444", "properties" : { - "structurizr.dsl.identifier" : "b515981c-8b23-48d5-b863-9cbfe8937297" + "structurizr.dsl.identifier" : "ad7a244e-01a8-4483-8729-49bad794a958" }, "sourceId" : "353", "tags" : "Relationship", @@ -1907,7 +1907,7 @@ "instances" : "3", "name" : "iprepd-nginx", "properties" : { - "structurizr.dsl.identifier" : "9f443153-7f59-47ac-b6a8-aa2158cf6e09" + "structurizr.dsl.identifier" : "37bc5a37-bf4c-46e3-8c77-741fffe4edfc" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1926,7 +1926,7 @@ "destinationId" : "437", "id" : "452", "properties" : { - "structurizr.dsl.identifier" : "d1916629-e099-4ed7-aa5b-2eadfff2df18" + "structurizr.dsl.identifier" : "05726ff5-c41a-4ce9-8765-d57768462ea3" }, "sourceId" : "355", "tags" : "Relationship" @@ -1936,7 +1936,7 @@ "instances" : "1", "name" : "stackdriver-telegraf", "properties" : { - "structurizr.dsl.identifier" : "e961386e-d7eb-4f83-81c8-368b57829a37" + "structurizr.dsl.identifier" : "6b0f987c-003d-4b30-bcc1-85804f6d632d" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1953,7 +1953,7 @@ "relationships" : [ { "description" : "Queries", "destinationId" : "368", - "id" : "377", + "id" : "372", "linkedRelationshipId" : "19", "sourceId" : "357", "technology" : "SQL" @@ -1972,7 +1972,7 @@ "instances" : "1", "name" : "statsd-telegraf", "properties" : { - "structurizr.dsl.identifier" : "55fbfc0d-cd0e-4101-8ed8-63bc9a941955" + "structurizr.dsl.identifier" : "8d97e2a6-ed7a-4d05-b155-e225e3e0d40e" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -1982,7 +1982,7 @@ "instances" : "1", "name" : "Kubernetes Engine", "properties" : { - "structurizr.dsl.identifier" : "7a1e56bb-9502-46af-9b88-5fd109cfcf36" + "structurizr.dsl.identifier" : "0cbaaa66-7b64-489a-a655-5b4a333816b4" }, "tags" : "Element,Deployment Node" }, { @@ -2020,7 +2020,7 @@ "instances" : "1", "name" : "Cloud SQL", "properties" : { - "structurizr.dsl.identifier" : "8bd942c9-95be-43e5-af07-ebfab02c793d" + "structurizr.dsl.identifier" : "8c3c98e7-7e12-4684-9a1c-82b0642d7026" }, "tags" : "Element,Deployment Node" }, { @@ -2045,7 +2045,7 @@ "destinationId" : "393", "id" : "447", "properties" : { - "structurizr.dsl.identifier" : "5f56e58c-c47c-4469-81d4-a50ddf154565" + "structurizr.dsl.identifier" : "94174684-5e46-4889-8aa3-7cf423daccb4" }, "sourceId" : "382", "tags" : "Relationship" @@ -2057,7 +2057,7 @@ "instances" : "1", "name" : "Cloud Logging", "properties" : { - "structurizr.dsl.identifier" : "7077a128-5646-4987-84f4-ac9e75a54dc4" + "structurizr.dsl.identifier" : "db296e39-ac6f-4c1f-be65-43bfa8a31488" }, "tags" : "Element,Deployment Node" }, { @@ -2077,7 +2077,7 @@ "instances" : "1", "name" : "BiqQuery", "properties" : { - "structurizr.dsl.identifier" : "0ab61207-705e-4650-a8c0-ae25ecbac5d5" + "structurizr.dsl.identifier" : "32f54d93-d481-49a3-8996-7246ee0d9536" }, "tags" : "Element,Deployment Node" }, { @@ -2097,7 +2097,7 @@ "instances" : "1", "name" : "MemoryStore", "properties" : { - "structurizr.dsl.identifier" : "4c157f66-049c-4a8d-b2e5-61d439fc0e45" + "structurizr.dsl.identifier" : "5703cedc-15cb-44bf-a467-db604b8c2cfd" }, "tags" : "Element,Deployment Node" }, { @@ -2117,7 +2117,7 @@ "instances" : "1", "name" : "Cloud Profiler", "properties" : { - "structurizr.dsl.identifier" : "671a40fb-05d9-46d3-a76d-2e3873c6cadf" + "structurizr.dsl.identifier" : "2cc66229-ce18-4ee0-a45f-eaa40ee1df12" }, "tags" : "Element,Deployment Node" }, { @@ -2136,7 +2136,7 @@ "destinationId" : "353", "id" : "448", "properties" : { - "structurizr.dsl.identifier" : "38634eb1-99dd-44be-990c-8ee5844fd327" + "structurizr.dsl.identifier" : "6a86d78f-a94e-4aa3-9cb3-d14dd5d64aea" }, "sourceId" : "404", "tags" : "Relationship", @@ -2147,7 +2147,7 @@ "instances" : "1", "name" : "Cloud Load Balancing", "properties" : { - "structurizr.dsl.identifier" : "60e3de57-b312-42c8-9b67-1c6cd32449a1" + "structurizr.dsl.identifier" : "bae479c8-64c8-4f54-8692-9a85cbb031ea" }, "tags" : "Element,Deployment Node" }, { @@ -2166,7 +2166,7 @@ "destinationId" : "355", "id" : "451", "properties" : { - "structurizr.dsl.identifier" : "10e22f10-e520-42b2-970c-2532a1317ec9" + "structurizr.dsl.identifier" : "e6e95f37-2737-4302-9da6-225a251f2e29" }, "sourceId" : "406", "tags" : "Relationship" @@ -2176,7 +2176,7 @@ "instances" : "1", "name" : "Cloud Metrics", "properties" : { - "structurizr.dsl.identifier" : "05fd6676-340d-486b-9145-44ca15434e12" + "structurizr.dsl.identifier" : "8cd62c1a-24a3-4011-b1e0-79d41112aece" }, "tags" : "Element,Deployment Node" } ], @@ -2185,7 +2185,7 @@ "instances" : "1", "name" : "Google Cloud Platform", "properties" : { - "structurizr.dsl.identifier" : "a7328c9d-c7b7-400b-a75d-d7e9803deb97" + "structurizr.dsl.identifier" : "63a5bd69-3529-4340-8767-abe9534b97e7" }, "tags" : "Element,Deployment Node" }, { @@ -2194,7 +2194,7 @@ "instances" : "1", "name" : "accounts.stage.mozaws.net", "properties" : { - "structurizr.dsl.identifier" : "4c627559-9da5-4d8c-876e-a7147f2f730b" + "structurizr.dsl.identifier" : "41d8906e-355e-499f-857c-29ebbaa12a40" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2207,7 +2207,7 @@ "relationships" : [ { "description" : "Uses", "destinationId" : "422", - "id" : "424", + "id" : "423", "linkedRelationshipId" : "4", "sourceId" : "408", "technology" : "HTTPS, Stripe API" @@ -2222,7 +2222,7 @@ "instances" : "1", "name" : "analytics.google.com", "properties" : { - "structurizr.dsl.identifier" : "0e573371-f400-452d-bd12-9689e37dca21" + "structurizr.dsl.identifier" : "43dbc6ea-8b8e-404f-a9ad-4144863ebed5" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2242,7 +2242,7 @@ "instances" : "1", "name" : "Mozilla Data Platform", "properties" : { - "structurizr.dsl.identifier" : "5260cc62-7413-4a02-ba56-385b77df9deb" + "structurizr.dsl.identifier" : "556255e7-5fa6-4655-8581-5e3b8ed16c59" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2262,7 +2262,7 @@ "instances" : "1", "name" : "Stripe", "properties" : { - "structurizr.dsl.identifier" : "b3062da4-5539-4f9a-9884-8e819136559b" + "structurizr.dsl.identifier" : "bf9180eb-572f-49a1-8348-050d55b2bda3" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2283,7 +2283,7 @@ "instances" : "1", "name" : "mozilla.sentry.io", "properties" : { - "structurizr.dsl.identifier" : "d513fb3b-4dd1-4d19-87d3-43daf110df66" + "structurizr.dsl.identifier" : "43ebe09e-5469-48b6-8270-c452a528d34f" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2303,7 +2303,7 @@ "instances" : "1", "name" : "influxcloud.net", "properties" : { - "structurizr.dsl.identifier" : "35de9240-2fe2-42a7-bdfb-54249545f97c" + "structurizr.dsl.identifier" : "b26b403a-a7a8-4e78-b81e-0780e4cef85f" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -2332,7 +2332,7 @@ "destinationId" : "404", "id" : "453", "properties" : { - "structurizr.dsl.identifier" : "4539ac8f-85df-4eba-a9da-a079b550441d" + "structurizr.dsl.identifier" : "ce9838d5-ad88-4490-b48c-6f5093239211" }, "sourceId" : "440", "tags" : "Relationship" @@ -2344,7 +2344,7 @@ "instances" : "1", "name" : "twilio.com", "properties" : { - "structurizr.dsl.identifier" : "4be992b4-3208-4d2e-95c6-2c8aa32e0653" + "structurizr.dsl.identifier" : "6f01a4cf-36c3-49a6-867d-cd351a5deb15" }, "tags" : "Element,Deployment Node" }, { @@ -2360,35 +2360,35 @@ "relationships" : [ { "description" : "Uses API, requests static assets", "destinationId" : "490", - "id" : "494", + "id" : "491", "linkedRelationshipId" : "109", "sourceId" : "456", "technology" : "HTTPS" }, { "description" : "Uses API, requests static assets", "destinationId" : "499", - "id" : "503", + "id" : "500", "linkedRelationshipId" : "109", "sourceId" : "456", "technology" : "HTTPS" }, { "description" : "Requests flow tracking, sends users for login and subscriptions", "destinationId" : "581", - "id" : "584", + "id" : "582", "linkedRelationshipId" : "105", "sourceId" : "456", "technology" : "HTTPS, OAuth 2, APIs" }, { "description" : "Sends page views, interactions", "destinationId" : "587", - "id" : "590", + "id" : "588", "linkedRelationshipId" : "106", "sourceId" : "456", "technology" : "HTTPS" }, { "description" : "Requests purchase tracking", "destinationId" : "595", - "id" : "596", + "id" : "597", "linkedRelationshipId" : "107", "sourceId" : "456", "technology" : "HTTPS" @@ -2397,7 +2397,7 @@ "destinationId" : "577", "id" : "622", "properties" : { - "structurizr.dsl.identifier" : "82243ad4-96f5-41d9-bb84-7446d354976f" + "structurizr.dsl.identifier" : "a50fe513-e5b7-428c-86ea-57b616bbc8cb" }, "sourceId" : "456", "tags" : "Relationship" @@ -2422,14 +2422,14 @@ }, { "description" : "Uses API, sends UI events", "destinationId" : "490", - "id" : "491", + "id" : "492", "linkedRelationshipId" : "111", "sourceId" : "457", "technology" : "HTTPS" }, { "description" : "Uses API, sends UI events", "destinationId" : "499", - "id" : "500", + "id" : "501", "linkedRelationshipId" : "111", "sourceId" : "457", "technology" : "HTTPS" @@ -2438,7 +2438,7 @@ "destinationId" : "577", "id" : "623", "properties" : { - "structurizr.dsl.identifier" : "e018f903-d1b6-4313-8540-6b20e6bc285a" + "structurizr.dsl.identifier" : "72051483-caad-4b39-b54e-39f031d47d9a" }, "sourceId" : "457", "tags" : "Relationship" @@ -2472,7 +2472,7 @@ "destinationId" : "577", "id" : "624", "properties" : { - "structurizr.dsl.identifier" : "1d9efd7c-1e2f-47d4-b925-adb7cb128090" + "structurizr.dsl.identifier" : "96ae9da3-23ae-433d-b740-249df14053d0" }, "sourceId" : "459", "tags" : "Relationship" @@ -2490,14 +2490,14 @@ "relationships" : [ { "description" : "Uses API", "destinationId" : "490", - "id" : "492", + "id" : "495", "linkedRelationshipId" : "114", "sourceId" : "460", "technology" : "HTTPS" }, { "description" : "Uses API", "destinationId" : "499", - "id" : "501", + "id" : "504", "linkedRelationshipId" : "114", "sourceId" : "460", "technology" : "HTTPS" @@ -2506,7 +2506,7 @@ "destinationId" : "577", "id" : "625", "properties" : { - "structurizr.dsl.identifier" : "c5a963c4-aaac-460e-bd2d-59cdfd72b2cb" + "structurizr.dsl.identifier" : "3bf5e24e-2727-4adb-9b26-2c290f9112a7" }, "sourceId" : "460", "tags" : "Relationship" @@ -2518,7 +2518,7 @@ "instances" : "1", "name" : "Stage User Interfaces", "properties" : { - "structurizr.dsl.identifier" : "5b0eaa0d-26c7-4e59-96c4-ded90383663b" + "structurizr.dsl.identifier" : "e73bdc93-674d-4037-ad8f-86507dc61494" }, "tags" : "Element,Deployment Node" }, { @@ -2536,7 +2536,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "479", - "id" : "483", + "id" : "482", "linkedRelationshipId" : "29", "sourceId" : "464", "technology" : "KMS" @@ -2561,7 +2561,7 @@ }, { "description" : "Decrypts", "destinationId" : "479", - "id" : "480", + "id" : "483", "linkedRelationshipId" : "31", "sourceId" : "465", "technology" : "KMS" @@ -2573,7 +2573,7 @@ "instances" : "1", "name" : "Amazon SQS", "properties" : { - "structurizr.dsl.identifier" : "e6994a5e-af68-4bc3-ad05-77b2b88e5be6" + "structurizr.dsl.identifier" : "6399ac30-e87a-4c80-8654-b4d1bd3d7f46" }, "tags" : "Element,Deployment Node" }, { @@ -2596,21 +2596,21 @@ }, { "description" : "Decrypts", "destinationId" : "479", - "id" : "484", + "id" : "480", "linkedRelationshipId" : "34", "sourceId" : "468", "technology" : "KMS" }, { "description" : "Sends emails, complaints, bounces", "destinationId" : "490", - "id" : "495", + "id" : "493", "linkedRelationshipId" : "132", "sourceId" : "468", "technology" : "SQS" }, { "description" : "Sends emails, complaints, bounces", "destinationId" : "499", - "id" : "504", + "id" : "502", "linkedRelationshipId" : "132", "sourceId" : "468", "technology" : "SQS" @@ -2619,7 +2619,7 @@ "destinationId" : "577", "id" : "629", "properties" : { - "structurizr.dsl.identifier" : "eb916311-1606-405b-a8a1-d9fd501bc7c3" + "structurizr.dsl.identifier" : "95708855-a44d-4603-95fc-e61d251058c9" }, "sourceId" : "468", "tags" : "Relationship,Optional Relationship", @@ -2632,7 +2632,7 @@ "instances" : "1", "name" : "Amazon SNS", "properties" : { - "structurizr.dsl.identifier" : "6f9297d0-1ae4-4359-8d15-26bbeee8c37c" + "structurizr.dsl.identifier" : "4900a649-58a6-418c-8565-53c52ada39ee" }, "tags" : "Element,Deployment Node" }, { @@ -2662,7 +2662,7 @@ }, { "description" : "Encrypts", "destinationId" : "479", - "id" : "485", + "id" : "481", "linkedRelationshipId" : "41", "sourceId" : "471", "technology" : "KMS" @@ -2687,7 +2687,7 @@ }, { "description" : "Encrypts complaints and bounces", "destinationId" : "479", - "id" : "482", + "id" : "484", "linkedRelationshipId" : "38", "sourceId" : "473", "technology" : "KMS" @@ -2699,7 +2699,7 @@ "instances" : "1", "name" : "Amazon SES", "properties" : { - "structurizr.dsl.identifier" : "8557d109-3c4a-4864-b438-5cd352c00e03" + "structurizr.dsl.identifier" : "6ccaa587-9efe-4bbc-8b80-020550339ee8" }, "tags" : "Element,Deployment Node" }, { @@ -2715,7 +2715,7 @@ "relationships" : [ { "description" : "Decrypts", "destinationId" : "479", - "id" : "481", + "id" : "485", "linkedRelationshipId" : "27", "sourceId" : "476", "technology" : "KMS" @@ -2727,7 +2727,7 @@ "instances" : "1", "name" : "Amazon S3", "properties" : { - "structurizr.dsl.identifier" : "50ab5afc-5e7f-45b4-8c22-c8c0f7bc47fc" + "structurizr.dsl.identifier" : "5c351c5a-ec73-4f8d-a89e-6d693b5aa0e2" }, "tags" : "Element,Deployment Node" }, { @@ -2747,7 +2747,7 @@ "instances" : "1", "name" : "Amazon KMS", "properties" : { - "structurizr.dsl.identifier" : "9f6fe848-4121-43ff-ac41-17a60472868e" + "structurizr.dsl.identifier" : "629c5d62-e8fb-495b-ab8a-8f1ff0c77c40" }, "tags" : "Element,Deployment Node" } ], @@ -2756,7 +2756,7 @@ "instances" : "1", "name" : "us-east-1 region", "properties" : { - "structurizr.dsl.identifier" : "65cf2865-5cd4-4650-a959-79fdb1acca46" + "structurizr.dsl.identifier" : "632c6bdb-2cd0-4532-99b2-c8ac9d281e76" }, "tags" : "Element,Deployment Node" } ], @@ -2765,7 +2765,7 @@ "instances" : "1", "name" : "Amazon Web Services", "properties" : { - "structurizr.dsl.identifier" : "2a53b27e-af98-482f-b6aa-4cc27fd34cf9" + "structurizr.dsl.identifier" : "dd46728d-fb15-46a2-bff6-1a0a1da38d91" }, "tags" : "Element,Deployment Node" }, { @@ -2783,7 +2783,7 @@ "relationships" : [ { "description" : "Sends email", "destinationId" : "473", - "id" : "493", + "id" : "494", "linkedRelationshipId" : "87", "sourceId" : "490", "technology" : "SES API" @@ -2797,7 +2797,7 @@ }, { "description" : "Updates", "destinationId" : "543", - "id" : "548", + "id" : "549", "linkedRelationshipId" : "82", "sourceId" : "490", "technology" : "Django ORM" @@ -2811,7 +2811,7 @@ }, { "description" : "Uses", "destinationId" : "568", - "id" : "570", + "id" : "569", "linkedRelationshipId" : "83", "sourceId" : "490", "technology" : "Django Cache API" @@ -2825,7 +2825,7 @@ }, { "description" : "Delegates user registration, payments", "destinationId" : "581", - "id" : "583", + "id" : "584", "linkedRelationshipId" : "84", "sourceId" : "490", "technology" : "HTTPS, OAuth 2, API" @@ -2839,14 +2839,14 @@ }, { "description" : "Sends exceptions", "destinationId" : "599", - "id" : "603", + "id" : "606", "linkedRelationshipId" : "88", "sourceId" : "490", "technology" : "HTTPS API" }, { "description" : "Reserves phone number, routes SMS and calls", "destinationId" : "613", - "id" : "615", + "id" : "614", "linkedRelationshipId" : "91", "sourceId" : "490", "technology" : "Stripe API, HTTPS callbacks" @@ -2868,7 +2868,7 @@ "destinationId" : "490", "id" : "618", "properties" : { - "structurizr.dsl.identifier" : "ed1c729d-2e85-4b3e-a804-6e0514f2cae6" + "structurizr.dsl.identifier" : "8b8dbc08-fe81-4722-a1f4-b1f0222a7a81" }, "sourceId" : "489", "tags" : "Relationship", @@ -2879,7 +2879,7 @@ "instances" : "3", "name" : "app", "properties" : { - "structurizr.dsl.identifier" : "beed5d2b-5a46-4d43-bdf1-bb6757a590f1" + "structurizr.dsl.identifier" : "3c73714d-60c1-42d7-9d1b-85fe15071fb5" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -2897,70 +2897,70 @@ "relationships" : [ { "description" : "Sends email", "destinationId" : "473", - "id" : "502", + "id" : "503", "linkedRelationshipId" : "87", "sourceId" : "499", "technology" : "SES API" }, { "description" : "Sends metrics", "destinationId" : "532", - "id" : "535", + "id" : "540", "linkedRelationshipId" : "89", "sourceId" : "499", "technology" : "HTTP" }, { "description" : "Updates", "destinationId" : "543", - "id" : "546", + "id" : "552", "linkedRelationshipId" : "82", "sourceId" : "499", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "555", - "id" : "558", + "id" : "563", "linkedRelationshipId" : "90", "sourceId" : "499", "technology" : "stdout / stderr" }, { "description" : "Uses", "destinationId" : "568", - "id" : "569", + "id" : "570", "linkedRelationshipId" : "83", "sourceId" : "499", "technology" : "Django Cache API" }, { "description" : "Sends Profiles", "destinationId" : "572", - "id" : "573", + "id" : "575", "linkedRelationshipId" : "93", "sourceId" : "499", "technology" : "Profile API" }, { "description" : "Delegates user registration, payments", "destinationId" : "581", - "id" : "582", + "id" : "585", "linkedRelationshipId" : "84", "sourceId" : "499", "technology" : "HTTPS, OAuth 2, API" }, { "description" : "Forwards extension's UI events", "destinationId" : "587", - "id" : "588", + "id" : "590", "linkedRelationshipId" : "85", "sourceId" : "499", "technology" : "Measurement Protocol" }, { "description" : "Sends exceptions", "destinationId" : "599", - "id" : "601", + "id" : "608", "linkedRelationshipId" : "88", "sourceId" : "499", "technology" : "HTTPS API" }, { "description" : "Reserves phone number, routes SMS and calls", "destinationId" : "613", - "id" : "614", + "id" : "615", "linkedRelationshipId" : "91", "sourceId" : "499", "technology" : "Stripe API, HTTPS callbacks" @@ -2982,7 +2982,7 @@ "destinationId" : "499", "id" : "619", "properties" : { - "structurizr.dsl.identifier" : "b5f45e7c-0d68-455d-8145-fc8f5a45bc5f" + "structurizr.dsl.identifier" : "aa771a0c-6f21-4dc6-b3ce-350a26cf5a7b" }, "sourceId" : "498", "tags" : "Relationship", @@ -2993,7 +2993,7 @@ "instances" : "1", "name" : "app-canary", "properties" : { - "structurizr.dsl.identifier" : "6bd550b8-be97-468b-ba82-c2993ff12060" + "structurizr.dsl.identifier" : "699bf465-f6b0-4fca-b730-09d77ca2b4d5" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -3009,22 +3009,22 @@ }, "relationships" : [ { "destinationId" : "532", - "id" : "534", + "id" : "538", "linkedRelationshipId" : "47", "sourceId" : "507" }, { "destinationId" : "543", - "id" : "545", + "id" : "550", "linkedRelationshipId" : "45", "sourceId" : "507" }, { "destinationId" : "555", - "id" : "557", + "id" : "561", "linkedRelationshipId" : "46", "sourceId" : "507" }, { "destinationId" : "599", - "id" : "600", + "id" : "607", "linkedRelationshipId" : "48", "sourceId" : "507" } ], @@ -3035,7 +3035,7 @@ "instances" : "1", "name" : "cleanup", "properties" : { - "structurizr.dsl.identifier" : "30d22c50-a610-4ba5-9999-e23e89bbbf45" + "structurizr.dsl.identifier" : "0661916d-ea0d-45a7-9575-566b5adad4a7" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3050,58 +3050,58 @@ "structurizr.dsl.identifier" : "prod_task_emails" }, "relationships" : [ { + "description" : "Reads, deletes emails", + "destinationId" : "476", + "id" : "510", + "linkedRelationshipId" : "98", + "sourceId" : "509", + "technology" : "S3 API" + }, { "description" : "Polls", "destinationId" : "465", - "id" : "510", + "id" : "511", "linkedRelationshipId" : "97", "sourceId" : "509", "technology" : "SQS API" }, { "description" : "Forwards email", "destinationId" : "473", - "id" : "511", + "id" : "512", "linkedRelationshipId" : "96", "sourceId" : "509", "technology" : "SES API" - }, { - "description" : "Reads, deletes emails", - "destinationId" : "476", - "id" : "512", - "linkedRelationshipId" : "98", - "sourceId" : "509", - "technology" : "S3 API" }, { "description" : "Sends metrics", "destinationId" : "532", - "id" : "540", + "id" : "534", "linkedRelationshipId" : "100", "sourceId" : "509", "technology" : "HTTP" }, { "description" : "Updates", "destinationId" : "543", - "id" : "551", + "id" : "546", "linkedRelationshipId" : "95", "sourceId" : "509", "technology" : "Django ORM" }, { "description" : "Emits logs", "destinationId" : "555", - "id" : "563", + "id" : "557", "linkedRelationshipId" : "101", "sourceId" : "509", "technology" : "stdout / stderr" }, { "description" : "Sends profiles", "destinationId" : "572", - "id" : "575", + "id" : "573", "linkedRelationshipId" : "102", "sourceId" : "509", "technology" : "Profile API" }, { "description" : "Sends exceptions", "destinationId" : "599", - "id" : "607", + "id" : "601", "linkedRelationshipId" : "99", "sourceId" : "509", "technology" : "HTTPS API" @@ -3113,7 +3113,7 @@ "instances" : "6", "name" : "emails", "properties" : { - "structurizr.dsl.identifier" : "fbe63271-468e-42bf-8b01-4725578fd3dc" + "structurizr.dsl.identifier" : "642a3bcf-2a51-4e1d-83ca-57b93b85fdbe" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -3129,22 +3129,22 @@ }, "relationships" : [ { "destinationId" : "532", - "id" : "536", + "id" : "533", "linkedRelationshipId" : "53", "sourceId" : "514" }, { "destinationId" : "543", - "id" : "547", + "id" : "544", "linkedRelationshipId" : "51", "sourceId" : "514" }, { "destinationId" : "555", - "id" : "559", + "id" : "556", "linkedRelationshipId" : "52", "sourceId" : "514" }, { "destinationId" : "599", - "id" : "602", + "id" : "600", "linkedRelationshipId" : "54", "sourceId" : "514" } ], @@ -3155,7 +3155,7 @@ "instances" : "1", "name" : "replys [sic]", "properties" : { - "structurizr.dsl.identifier" : "43c7da40-0a2f-49a4-83b4-df229c3d56f9" + "structurizr.dsl.identifier" : "3b934cfa-aada-4ea7-bcc3-a459c1de8b63" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3170,12 +3170,12 @@ "structurizr.dsl.identifier" : "prod_task_dlq" }, "relationships" : [ { - "description" : "Forwards email (rarely)", - "destinationId" : "473", + "description" : "Polls", + "destinationId" : "464", "id" : "517", - "linkedRelationshipId" : "75", + "linkedRelationshipId" : "76", "sourceId" : "516", - "technology" : "SES API" + "technology" : "SQS API" }, { "description" : "Reads, deletes emails", "destinationId" : "476", @@ -3184,12 +3184,12 @@ "sourceId" : "516", "technology" : "S3 API" }, { - "description" : "Polls", - "destinationId" : "464", + "description" : "Forwards email (rarely)", + "destinationId" : "473", "id" : "519", - "linkedRelationshipId" : "76", + "linkedRelationshipId" : "75", "sourceId" : "516", - "technology" : "SQS API" + "technology" : "SES API" }, { "destinationId" : "532", "id" : "539", @@ -3197,7 +3197,7 @@ "sourceId" : "516" }, { "destinationId" : "543", - "id" : "550", + "id" : "551", "linkedRelationshipId" : "77", "sourceId" : "516" }, { @@ -3207,7 +3207,7 @@ "sourceId" : "516" }, { "destinationId" : "599", - "id" : "605", + "id" : "603", "linkedRelationshipId" : "80", "sourceId" : "516" } ], @@ -3218,7 +3218,7 @@ "instances" : "1", "name" : "sqs-dlq", "properties" : { - "structurizr.dsl.identifier" : "f037464d-c4da-4aa7-adf6-f4c159c9b665" + "structurizr.dsl.identifier" : "29ba335a-e464-4610-af91-4ff6a74359e6" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3234,29 +3234,29 @@ }, "relationships" : [ { "destinationId" : "532", - "id" : "541", + "id" : "536", "linkedRelationshipId" : "60", "sourceId" : "521" }, { "destinationId" : "543", - "id" : "553", + "id" : "548", "linkedRelationshipId" : "58", "sourceId" : "521" }, { "destinationId" : "555", - "id" : "564", + "id" : "559", "linkedRelationshipId" : "59", "sourceId" : "521" }, { "description" : "Reads subscription data", "destinationId" : "581", - "id" : "585", + "id" : "583", "linkedRelationshipId" : "56", "sourceId" : "521", "technology" : "Subscription API" }, { "destinationId" : "599", - "id" : "608", + "id" : "605", "linkedRelationshipId" : "61", "sourceId" : "521" } ], @@ -3267,7 +3267,7 @@ "instances" : "1", "name" : "syncphones", "properties" : { - "structurizr.dsl.identifier" : "25b36661-9bb1-4ab7-a509-b3ad9b70a7e9" + "structurizr.dsl.identifier" : "051397f4-4aa9-42d0-9994-d1763a6e16f1" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3283,22 +3283,22 @@ }, "relationships" : [ { "destinationId" : "532", - "id" : "538", + "id" : "535", "linkedRelationshipId" : "65", "sourceId" : "523" }, { "destinationId" : "543", - "id" : "549", + "id" : "547", "linkedRelationshipId" : "63", "sourceId" : "523" }, { "destinationId" : "555", - "id" : "561", + "id" : "558", "linkedRelationshipId" : "64", "sourceId" : "523" }, { "destinationId" : "599", - "id" : "604", + "id" : "602", "linkedRelationshipId" : "66", "sourceId" : "523" } ], @@ -3309,7 +3309,7 @@ "instances" : "1", "name" : "updphones", "properties" : { - "structurizr.dsl.identifier" : "8b133c46-c5fa-412b-b424-ec75be18c46d" + "structurizr.dsl.identifier" : "b875b131-b8e5-4aa1-8c94-2977666ea2af" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3332,22 +3332,22 @@ "technology" : "SES API" }, { "destinationId" : "532", - "id" : "533", + "id" : "541", "linkedRelationshipId" : "71", "sourceId" : "525" }, { "destinationId" : "543", - "id" : "544", + "id" : "553", "linkedRelationshipId" : "69", "sourceId" : "525" }, { "destinationId" : "555", - "id" : "556", + "id" : "564", "linkedRelationshipId" : "70", "sourceId" : "525" }, { "destinationId" : "599", - "id" : "606", + "id" : "604", "linkedRelationshipId" : "72", "sourceId" : "525" } ], @@ -3358,7 +3358,7 @@ "instances" : "1", "name" : "welcome", "properties" : { - "structurizr.dsl.identifier" : "3fd32b6b-a36e-4121-ae78-bf71cbfb6b0e" + "structurizr.dsl.identifier" : "18b2293a-4ad8-4c29-a4e3-12c71d674363" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Cron Job" @@ -3378,7 +3378,7 @@ "destinationId" : "489", "id" : "616", "properties" : { - "structurizr.dsl.identifier" : "3654f548-8722-4dbb-8357-475e30025efb" + "structurizr.dsl.identifier" : "2bbf4b4e-0644-4803-b418-c100c37c7098" }, "sourceId" : "528", "tags" : "Relationship", @@ -3388,7 +3388,7 @@ "destinationId" : "498", "id" : "617", "properties" : { - "structurizr.dsl.identifier" : "5a5d8e21-d90d-4965-8d4b-e21f3c79150f" + "structurizr.dsl.identifier" : "2619ee1c-a205-4c91-8577-a8a7988fd586" }, "sourceId" : "528", "tags" : "Relationship", @@ -3399,7 +3399,7 @@ "instances" : "3", "name" : "iprepd-nginx", "properties" : { - "structurizr.dsl.identifier" : "4446e839-faf9-4a2d-b609-1771efd78a18" + "structurizr.dsl.identifier" : "b1711b06-9822-4f75-a168-67104ccebb34" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -3418,7 +3418,7 @@ "destinationId" : "610", "id" : "627", "properties" : { - "structurizr.dsl.identifier" : "5ed352a3-e675-412b-9bf8-d1c00ca38add" + "structurizr.dsl.identifier" : "30abc472-4bac-4b39-bb8d-093fcf4af35b" }, "sourceId" : "530", "tags" : "Relationship" @@ -3428,7 +3428,7 @@ "instances" : "1", "name" : "stackdriver-telegraf", "properties" : { - "structurizr.dsl.identifier" : "6a26c8d3-7143-4f97-b632-64440735d62b" + "structurizr.dsl.identifier" : "3d193bba-9c74-4228-8b23-c97d736383c2" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -3445,7 +3445,7 @@ "relationships" : [ { "description" : "Queries", "destinationId" : "543", - "id" : "552", + "id" : "545", "linkedRelationshipId" : "19", "sourceId" : "532", "technology" : "SQL" @@ -3464,7 +3464,7 @@ "instances" : "1", "name" : "statsd-telegraf", "properties" : { - "structurizr.dsl.identifier" : "e67610a8-ef00-4434-adc9-d4187d4ef6e3" + "structurizr.dsl.identifier" : "ed3fe06d-6e0f-430b-98e4-a8c007e3b456" }, "tags" : "Element,Deployment Node", "technology" : "Kubernetes Deployment" @@ -3474,7 +3474,7 @@ "instances" : "1", "name" : "Kubernetes Engine", "properties" : { - "structurizr.dsl.identifier" : "4d23acfa-4784-4813-8791-57240a538308" + "structurizr.dsl.identifier" : "b0f49af0-608e-4bc4-9118-80684135e245" }, "tags" : "Element,Deployment Node" }, { @@ -3494,7 +3494,7 @@ "instances" : "1", "name" : "Cloud SQL", "properties" : { - "structurizr.dsl.identifier" : "4ddaee23-2b2e-44ff-8bf1-25a3c4791d5f" + "structurizr.dsl.identifier" : "1d4a8239-ee16-4730-b207-c3b5a74e1208" }, "tags" : "Element,Deployment Node" }, { @@ -3519,7 +3519,7 @@ "destinationId" : "566", "id" : "620", "properties" : { - "structurizr.dsl.identifier" : "97fb4c5a-79c8-4df4-93eb-7f4a38a757c8" + "structurizr.dsl.identifier" : "1eb524de-31f1-4c27-ac95-ec26c5a72002" }, "sourceId" : "555", "tags" : "Relationship" @@ -3531,7 +3531,7 @@ "instances" : "1", "name" : "Cloud Logging", "properties" : { - "structurizr.dsl.identifier" : "6b7306aa-b602-40c4-a52d-92a573e7ebf1" + "structurizr.dsl.identifier" : "57ce2787-9d9b-4d1d-9d01-dfdaddf0eff0" }, "tags" : "Element,Deployment Node" }, { @@ -3551,7 +3551,7 @@ "instances" : "1", "name" : "BiqQuery", "properties" : { - "structurizr.dsl.identifier" : "84279a8f-643d-45cf-a223-e27eabbafc81" + "structurizr.dsl.identifier" : "fb413768-9873-43f2-95aa-fc942d28c328" }, "tags" : "Element,Deployment Node" }, { @@ -3571,7 +3571,7 @@ "instances" : "1", "name" : "MemoryStore", "properties" : { - "structurizr.dsl.identifier" : "5d725e9c-0bb4-44d7-b2c8-085547de3d34" + "structurizr.dsl.identifier" : "ffafc239-f454-46c3-9a60-832ee3f8f836" }, "tags" : "Element,Deployment Node" }, { @@ -3591,7 +3591,7 @@ "instances" : "1", "name" : "Cloud Profiler", "properties" : { - "structurizr.dsl.identifier" : "4f4af9ea-7b6b-47ca-ac53-32256b705d90" + "structurizr.dsl.identifier" : "18117684-7e3d-4888-be2d-16551e98adad" }, "tags" : "Element,Deployment Node" }, { @@ -3610,7 +3610,7 @@ "destinationId" : "528", "id" : "621", "properties" : { - "structurizr.dsl.identifier" : "9ae4a2e4-8757-40cd-84b8-104b8b974500" + "structurizr.dsl.identifier" : "a177fa57-c6d5-47b8-8785-902e46d1e50b" }, "sourceId" : "577", "tags" : "Relationship", @@ -3621,7 +3621,7 @@ "instances" : "1", "name" : "Cloud Load Balancing", "properties" : { - "structurizr.dsl.identifier" : "4cb86a05-a7f2-4903-a461-f126e4e1df51" + "structurizr.dsl.identifier" : "33458889-33a0-4805-87b4-8da970b89fa6" }, "tags" : "Element,Deployment Node" }, { @@ -3640,7 +3640,7 @@ "destinationId" : "530", "id" : "626", "properties" : { - "structurizr.dsl.identifier" : "0d5b7c60-277f-4718-8664-3f039fb8a13a" + "structurizr.dsl.identifier" : "7618eb8e-418a-43ee-8c3c-22f437eeef68" }, "sourceId" : "579", "tags" : "Relationship" @@ -3650,7 +3650,7 @@ "instances" : "1", "name" : "Cloud Metrics", "properties" : { - "structurizr.dsl.identifier" : "54e97603-85d5-4b06-bb64-a06f9961eede" + "structurizr.dsl.identifier" : "712df77c-aed8-4b33-9d60-a5b428439e91" }, "tags" : "Element,Deployment Node" } ], @@ -3659,7 +3659,7 @@ "instances" : "1", "name" : "Google Cloud Platform", "properties" : { - "structurizr.dsl.identifier" : "7634fa3b-66e0-4058-a5f1-5bcd84121e1b" + "structurizr.dsl.identifier" : "d3953d70-7565-4487-b63f-c2c71c02a78d" }, "tags" : "Element,Deployment Node" }, { @@ -3668,7 +3668,7 @@ "instances" : "1", "name" : "accounts.prod.mozaws.net", "properties" : { - "structurizr.dsl.identifier" : "a9af2d2e-116e-4d22-8ecc-607fb8a58358" + "structurizr.dsl.identifier" : "71206bdc-91ec-4b1c-b59d-102c7de3b490" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3681,7 +3681,7 @@ "relationships" : [ { "description" : "Uses", "destinationId" : "595", - "id" : "597", + "id" : "596", "linkedRelationshipId" : "4", "sourceId" : "581", "technology" : "HTTPS, Stripe API" @@ -3696,7 +3696,7 @@ "instances" : "1", "name" : "analytics.google.com", "properties" : { - "structurizr.dsl.identifier" : "ff5198d3-8ff3-4fd7-9834-9adfb5215d41" + "structurizr.dsl.identifier" : "764bf6ff-aa4e-41c5-acff-7d8d844a7f5a" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3716,7 +3716,7 @@ "instances" : "1", "name" : "Mozilla Data Platform", "properties" : { - "structurizr.dsl.identifier" : "94a7b7b1-4673-4e67-bd5f-be275e8b1879" + "structurizr.dsl.identifier" : "4a8032ba-be0f-4ebb-80cc-62b1ee86b2b0" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3736,7 +3736,7 @@ "instances" : "1", "name" : "Stripe", "properties" : { - "structurizr.dsl.identifier" : "f47e064c-2f46-49ec-844d-db48ea97d071" + "structurizr.dsl.identifier" : "3ddefe83-9091-4e59-8e03-a913888df520" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3757,7 +3757,7 @@ "instances" : "1", "name" : "mozilla.sentry.io", "properties" : { - "structurizr.dsl.identifier" : "d0173216-b1b0-416d-8ff1-f1ea07d02d7d" + "structurizr.dsl.identifier" : "0fd6687d-9eb3-425c-9379-e8458e9bf320" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3777,7 +3777,7 @@ "instances" : "1", "name" : "influxcloud.net", "properties" : { - "structurizr.dsl.identifier" : "0d382e96-dfb7-40a0-991d-5e76fdc16444" + "structurizr.dsl.identifier" : "b8d44e2e-883c-409d-b5d2-abf88a9bb97a" }, "softwareSystemInstances" : [ { "deploymentGroups" : [ "Default" ], @@ -3806,7 +3806,7 @@ "destinationId" : "577", "id" : "628", "properties" : { - "structurizr.dsl.identifier" : "9c0dc7b4-1048-460b-b84e-9067aedc7621" + "structurizr.dsl.identifier" : "3db021db-4390-443f-896e-940a74923926" }, "sourceId" : "613", "tags" : "Relationship" @@ -3818,7 +3818,7 @@ "instances" : "1", "name" : "twilio.com", "properties" : { - "structurizr.dsl.identifier" : "21fa1ca2-93ca-4b35-ab0f-2460f5908c58" + "structurizr.dsl.identifier" : "072bb40c-d75b-4f3d-977c-67ddf80ffe54" }, "tags" : "Element,Deployment Node" } ], @@ -3835,7 +3835,7 @@ "destinationId" : "3", "id" : "118", "properties" : { - "structurizr.dsl.identifier" : "e499e77b-46c1-45ed-8cba-2d75ea3b4f73" + "structurizr.dsl.identifier" : "b5b01801-6629-4485-8e67-8279eee347fb" }, "sourceId" : "117", "tags" : "Relationship", @@ -3845,7 +3845,7 @@ "destinationId" : "104", "id" : "119", "properties" : { - "structurizr.dsl.identifier" : "7ae11b0e-57b2-414c-ac6f-f52c1b50d5ee" + "structurizr.dsl.identifier" : "5bcc425b-3db2-4abf-9a46-292afeef86d1" }, "sourceId" : "117", "tags" : "Relationship" @@ -3860,7 +3860,7 @@ "destinationId" : "110", "id" : "121", "properties" : { - "structurizr.dsl.identifier" : "1f8610cd-20c1-4c01-94f8-21ee3793996d" + "structurizr.dsl.identifier" : "cd2d4dbe-edc6-43b3-925c-01a1329b4be3" }, "sourceId" : "117", "tags" : "Relationship" @@ -3869,7 +3869,7 @@ "destinationId" : "113", "id" : "122", "properties" : { - "structurizr.dsl.identifier" : "a521ad72-f9ee-4d46-a254-934f2a17614c" + "structurizr.dsl.identifier" : "1a64517f-d34c-467f-a70a-04f4a1f42fd7" }, "sourceId" : "117", "tags" : "Relationship" @@ -3878,7 +3878,7 @@ "destinationId" : "115", "id" : "123", "properties" : { - "structurizr.dsl.identifier" : "3c580812-7cf2-4983-a0aa-204784c8c4bf" + "structurizr.dsl.identifier" : "4155b48f-8f46-4957-baff-7fbae9d94a6c" }, "sourceId" : "117", "tags" : "Relationship" @@ -3887,7 +3887,7 @@ "destinationId" : "39", "id" : "124", "properties" : { - "structurizr.dsl.identifier" : "b0b161b5-e34e-43f9-9f11-9b120ded7c12" + "structurizr.dsl.identifier" : "b00a199b-b4c8-45b9-8c4b-dd2b926ff0a4" }, "sourceId" : "117", "tags" : "Relationship", @@ -3897,7 +3897,7 @@ "destinationId" : "103", "id" : "142", "properties" : { - "structurizr.dsl.identifier" : "db9ddb80-ff9e-4eb4-ae51-166ae34be5f1" + "structurizr.dsl.identifier" : "e47733aa-fb02-4b2a-a89d-b63f6218278f" }, "sourceId" : "117", "tags" : "Relationship" @@ -3906,7 +3906,7 @@ "destinationId" : "24", "id" : "147", "properties" : { - "structurizr.dsl.identifier" : "d686f42d-acc4-43fe-aefb-ad83b75c418e" + "structurizr.dsl.identifier" : "6a067a74-ff41-42c9-ad43-9b51a385c873" }, "sourceId" : "117", "tags" : "Relationship" @@ -3925,7 +3925,7 @@ "destinationId" : "39", "id" : "126", "properties" : { - "structurizr.dsl.identifier" : "c669d81e-780f-4bb7-be5d-4e8b2bd580a0" + "structurizr.dsl.identifier" : "12502969-90e4-46ed-8b0e-fcadf2effe59" }, "sourceId" : "125", "tags" : "Relationship", @@ -3942,7 +3942,7 @@ "destinationId" : "24", "id" : "150", "properties" : { - "structurizr.dsl.identifier" : "afa1fd3a-9d6c-4c00-9473-2d974002e666" + "structurizr.dsl.identifier" : "7998117b-99ca-4b56-9943-2b7efd3610a4" }, "sourceId" : "125", "tags" : "Relationship" @@ -3961,7 +3961,7 @@ "destinationId" : "22", "id" : "129", "properties" : { - "structurizr.dsl.identifier" : "60371e19-2fbd-43b8-8ceb-ea93fad8bdd4" + "structurizr.dsl.identifier" : "3876ad3a-4d12-409f-8a7d-4f1a92fb7c00" }, "sourceId" : "128", "tags" : "Relationship", @@ -3978,7 +3978,7 @@ "destinationId" : "23", "id" : "131", "properties" : { - "structurizr.dsl.identifier" : "aa9ec9fc-acc0-4b93-832b-47751e5a13f8" + "structurizr.dsl.identifier" : "67632a07-a3cc-423f-a719-b257f9440f89" }, "sourceId" : "128", "tags" : "Relationship", @@ -4021,7 +4021,7 @@ "destinationId" : "2", "id" : "4", "properties" : { - "structurizr.dsl.identifier" : "67e6956b-4642-439f-ba50-670ba5e1b0ab" + "structurizr.dsl.identifier" : "89c922a7-c185-41f6-aca0-0965dcafee10" }, "sourceId" : "3", "tags" : "Relationship", @@ -4085,7 +4085,7 @@ "destinationId" : "5", "id" : "154", "properties" : { - "structurizr.dsl.identifier" : "5240bb2c-aa1b-4eea-8c78-8dd8581a1e17" + "structurizr.dsl.identifier" : "5914cb30-8181-45ef-a4c0-4127dc415bf9" }, "sourceId" : "10", "tags" : "Relationship", @@ -4095,7 +4095,7 @@ "destinationId" : "6", "id" : "155", "properties" : { - "structurizr.dsl.identifier" : "89da5a0c-cccb-4e0e-8767-f43550429022" + "structurizr.dsl.identifier" : "84bf0f60-245c-45d3-907c-6cd2f615c243" }, "sourceId" : "10", "tags" : "Relationship", @@ -4105,7 +4105,7 @@ "destinationId" : "9", "id" : "156", "properties" : { - "structurizr.dsl.identifier" : "2bd8e8f1-3d69-4754-8147-960c9ea03185" + "structurizr.dsl.identifier" : "c5048a5f-a980-412d-a98b-6202d109a3e0" }, "sourceId" : "10", "tags" : "Relationship", @@ -4126,7 +4126,7 @@ "destinationId" : "9", "id" : "12", "properties" : { - "structurizr.dsl.identifier" : "4a2f299e-aa30-4dad-b25e-ab1a4e50792b" + "structurizr.dsl.identifier" : "4a1b461d-3e8f-44cc-a553-17d2a6ddb637" }, "sourceId" : "11", "tags" : "Relationship", @@ -4147,7 +4147,7 @@ "destinationId" : "5", "id" : "14", "properties" : { - "structurizr.dsl.identifier" : "91ae691e-9126-4aeb-a8c8-d91f2664e5cd" + "structurizr.dsl.identifier" : "c98bda06-89b2-4d6c-807b-15ecc8f0a532" }, "sourceId" : "13", "tags" : "Relationship", @@ -4167,7 +4167,7 @@ "destinationId" : "6", "id" : "17", "properties" : { - "structurizr.dsl.identifier" : "d5791c46-d0e9-4a15-aea0-b5233f7295be" + "structurizr.dsl.identifier" : "38555685-6a4e-47c9-8b86-da24f5255ec1" }, "sourceId" : "16", "tags" : "Relationship", @@ -4177,7 +4177,7 @@ "destinationId" : "9", "id" : "19", "properties" : { - "structurizr.dsl.identifier" : "b978bd77-c701-4a9b-a86b-728a3a98b2ba" + "structurizr.dsl.identifier" : "3fb4da82-f59f-43f6-bc3e-99303365a9ab" }, "sourceId" : "16", "tags" : "Relationship", @@ -4218,7 +4218,7 @@ "destinationId" : "128", "id" : "137", "properties" : { - "structurizr.dsl.identifier" : "b8ac3b6f-34e2-4bf1-9690-f0fecbf77a5c" + "structurizr.dsl.identifier" : "08015e7b-287f-4574-8e24-897df25cd57f" }, "sourceId" : "22", "tags" : "Relationship", @@ -4228,7 +4228,7 @@ "destinationId" : "117", "id" : "139", "properties" : { - "structurizr.dsl.identifier" : "78831f3c-c0f2-4118-a1c0-6562c8367b52" + "structurizr.dsl.identifier" : "e2df2893-5711-4407-9b46-f9784a157c7f" }, "sourceId" : "22", "tags" : "Relationship", @@ -4249,7 +4249,7 @@ "destinationId" : "117", "id" : "140", "properties" : { - "structurizr.dsl.identifier" : "73fe5d5d-75a5-4397-a1a9-980e859dee01" + "structurizr.dsl.identifier" : "7c5c647c-2c0e-42d9-b659-74f3c5947775" }, "sourceId" : "23", "tags" : "Relationship,Optional Relationship", @@ -4259,7 +4259,7 @@ "destinationId" : "128", "id" : "141", "properties" : { - "structurizr.dsl.identifier" : "4f6ebb67-d206-4e2e-9da7-bb19c9ae1eb8" + "structurizr.dsl.identifier" : "f216a06f-0a3c-4a1b-ba4a-a8d0bb3690e4" }, "sourceId" : "23", "tags" : "Relationship", @@ -4280,7 +4280,7 @@ "destinationId" : "117", "id" : "146", "properties" : { - "structurizr.dsl.identifier" : "cce2716a-bd9f-488e-bc77-53b0ea352bc7" + "structurizr.dsl.identifier" : "ffad6a3f-2d25-4963-894e-c1f75ca637a9" }, "sourceId" : "24", "tags" : "Relationship" @@ -4289,7 +4289,7 @@ "destinationId" : "125", "id" : "151", "properties" : { - "structurizr.dsl.identifier" : "1a400194-85a4-4071-bb0d-c9266582e9d0" + "structurizr.dsl.identifier" : "67585567-51a2-4d19-9cd1-4066f4887163" }, "sourceId" : "24", "tags" : "Relationship" @@ -4319,7 +4319,7 @@ "destinationId" : "25", "id" : "27", "properties" : { - "structurizr.dsl.identifier" : "928e5656-c0e9-4ae7-86b7-dc1be39e57b7" + "structurizr.dsl.identifier" : "b9d1141e-1eb9-4ad5-a880-07e0f6bae1ae" }, "sourceId" : "26", "tags" : "Relationship", @@ -4340,7 +4340,7 @@ "destinationId" : "25", "id" : "29", "properties" : { - "structurizr.dsl.identifier" : "c7b458c4-e883-4e85-bd91-f6b721edd0eb" + "structurizr.dsl.identifier" : "82b37825-ba14-468b-882b-325d22ee0cd0" }, "sourceId" : "28", "tags" : "Relationship", @@ -4361,7 +4361,7 @@ "destinationId" : "25", "id" : "31", "properties" : { - "structurizr.dsl.identifier" : "2f66eea3-2f51-4591-90a2-6d0016400788" + "structurizr.dsl.identifier" : "c6a471cb-d080-445c-a863-100150c5f2fb" }, "sourceId" : "30", "tags" : "Relationship", @@ -4371,7 +4371,7 @@ "destinationId" : "28", "id" : "32", "properties" : { - "structurizr.dsl.identifier" : "dac7e118-681a-486b-bb6b-4ce4fe70b257" + "structurizr.dsl.identifier" : "1e55dcc3-99a1-47f8-a8bc-675948c92ada" }, "sourceId" : "30", "tags" : "Relationship", @@ -4392,7 +4392,7 @@ "destinationId" : "25", "id" : "34", "properties" : { - "structurizr.dsl.identifier" : "2b72d6c5-8316-4ef3-b5bc-015e71a725f1" + "structurizr.dsl.identifier" : "38893fd0-0c06-48bc-b92b-066a10a176e3" }, "sourceId" : "33", "tags" : "Relationship", @@ -4402,7 +4402,7 @@ "destinationId" : "30", "id" : "35", "properties" : { - "structurizr.dsl.identifier" : "66c4fc18-9f9b-4689-a21d-133e20cd78dc" + "structurizr.dsl.identifier" : "796b0d91-a9b8-4492-a773-b2b309d120ed" }, "sourceId" : "33", "tags" : "Relationship", @@ -4412,7 +4412,7 @@ "destinationId" : "81", "id" : "132", "properties" : { - "structurizr.dsl.identifier" : "6fe79cf6-263e-4b13-a1fb-0e7f8a024966" + "structurizr.dsl.identifier" : "4f78de7e-39cd-4556-85eb-75a3e3a9105b" }, "sourceId" : "33", "tags" : "Relationship,Optional Relationship,omit_in_gcp", @@ -4433,7 +4433,7 @@ "destinationId" : "33", "id" : "37", "properties" : { - "structurizr.dsl.identifier" : "2a930d12-3d8f-47d6-b3f3-250e8449d489" + "structurizr.dsl.identifier" : "004d827b-f856-4dcc-a91c-5b20b99201fc" }, "sourceId" : "36", "tags" : "Relationship", @@ -4443,7 +4443,7 @@ "destinationId" : "25", "id" : "38", "properties" : { - "structurizr.dsl.identifier" : "0eba5551-1abb-4566-87f4-a6f14b6c6714" + "structurizr.dsl.identifier" : "38dfe259-d981-47f9-b284-6a09ed712d40" }, "sourceId" : "36", "tags" : "Relationship", @@ -4453,7 +4453,7 @@ "destinationId" : "117", "id" : "133", "properties" : { - "structurizr.dsl.identifier" : "32fe48bb-ab7f-4e2f-a49c-2bba0c403020" + "structurizr.dsl.identifier" : "3013d0b7-500e-49b2-a261-4dbdbfb31f86" }, "sourceId" : "36", "tags" : "Relationship", @@ -4463,7 +4463,7 @@ "destinationId" : "125", "id" : "135", "properties" : { - "structurizr.dsl.identifier" : "36652b03-14ab-4fd8-bb88-cfb1fc76d427" + "structurizr.dsl.identifier" : "fe6bf7a1-b243-47ee-b524-a78fb5d7ad7b" }, "sourceId" : "36", "tags" : "Relationship", @@ -4484,7 +4484,7 @@ "destinationId" : "26", "id" : "40", "properties" : { - "structurizr.dsl.identifier" : "4d124bb6-bb16-4add-a602-37ffebcab88a" + "structurizr.dsl.identifier" : "f1755e51-8362-4f3c-a183-d9e6c43ac72b" }, "sourceId" : "39", "tags" : "Relationship", @@ -4494,7 +4494,7 @@ "destinationId" : "25", "id" : "41", "properties" : { - "structurizr.dsl.identifier" : "3aa10b02-5668-4946-9684-20072b26da85" + "structurizr.dsl.identifier" : "deffa508-a492-4502-a494-edeae8d73f0d" }, "sourceId" : "39", "tags" : "Relationship", @@ -4504,7 +4504,7 @@ "destinationId" : "33", "id" : "42", "properties" : { - "structurizr.dsl.identifier" : "8e00eaef-d39a-49f9-b68e-07477e378325" + "structurizr.dsl.identifier" : "752a2082-c771-4fef-8cf8-fb762bd17875" }, "sourceId" : "39", "tags" : "Relationship", @@ -4525,7 +4525,7 @@ "destinationId" : "9", "id" : "165", "properties" : { - "structurizr.dsl.identifier" : "fdc2d916-1ed4-4976-8633-bb457073bb47" + "structurizr.dsl.identifier" : "b7c11f6e-2d87-4ecd-9217-3f787c021a36" }, "sourceId" : "43", "tags" : "Relationship", @@ -4535,7 +4535,7 @@ "destinationId" : "7", "id" : "166", "properties" : { - "structurizr.dsl.identifier" : "db00c611-dfda-4acc-950f-c939b96ac207" + "structurizr.dsl.identifier" : "50a1b4de-9a6a-4c1d-aa64-c97e2c2d4715" }, "sourceId" : "43", "tags" : "Relationship", @@ -4545,7 +4545,7 @@ "destinationId" : "3", "id" : "167", "properties" : { - "structurizr.dsl.identifier" : "6a6844de-e2b9-45da-a220-6b8e5c3d51fb" + "structurizr.dsl.identifier" : "1bc8447f-6251-4cb6-83a8-4358b2b63867" }, "sourceId" : "43", "tags" : "Relationship", @@ -4555,7 +4555,7 @@ "destinationId" : "36", "id" : "168", "properties" : { - "structurizr.dsl.identifier" : "3bd4b9c7-f882-42b9-a24f-92eedf96cdc0" + "structurizr.dsl.identifier" : "cd902268-ccd5-4929-bb84-119326c9103f" }, "sourceId" : "43", "tags" : "Relationship", @@ -4565,7 +4565,7 @@ "destinationId" : "24", "id" : "169", "properties" : { - "structurizr.dsl.identifier" : "0af2e5d6-6d32-4ca0-b44c-7b8016969295" + "structurizr.dsl.identifier" : "846cc84e-8db9-44b7-a50d-d21a250c381f" }, "sourceId" : "43", "tags" : "Relationship", @@ -4575,7 +4575,7 @@ "destinationId" : "28", "id" : "170", "properties" : { - "structurizr.dsl.identifier" : "eb314ae3-3aae-491b-8a2f-5bbb9cfe91e5" + "structurizr.dsl.identifier" : "ccf7c6d1-a715-40a0-9ed9-5b838679a271" }, "sourceId" : "43", "tags" : "Relationship", @@ -4585,7 +4585,7 @@ "destinationId" : "26", "id" : "171", "properties" : { - "structurizr.dsl.identifier" : "4d9f142f-5170-41ba-8e0c-c0d62d3fd2c8" + "structurizr.dsl.identifier" : "65ab5501-7d2f-4936-97b5-f2479e7c4005" }, "sourceId" : "43", "tags" : "Relationship", @@ -4595,7 +4595,7 @@ "destinationId" : "10", "id" : "172", "properties" : { - "structurizr.dsl.identifier" : "0706fcbf-1ebc-412e-8117-c854bf5d91bf" + "structurizr.dsl.identifier" : "4e9d08c2-f5a3-4073-b993-9ee3f13fc916" }, "sourceId" : "43", "tags" : "Relationship" @@ -4604,7 +4604,7 @@ "destinationId" : "16", "id" : "173", "properties" : { - "structurizr.dsl.identifier" : "312b5c43-99b9-424c-80c2-f61f1a02782d" + "structurizr.dsl.identifier" : "0127c922-19d7-4eab-8653-3d4c0cbda4cc" }, "sourceId" : "43", "tags" : "Relationship" @@ -4613,7 +4613,7 @@ "destinationId" : "13", "id" : "174", "properties" : { - "structurizr.dsl.identifier" : "93f26024-a487-47b0-96cb-414694b4f9c0" + "structurizr.dsl.identifier" : "7d495bc0-bba5-4d55-a6c8-0ace340bb9db" }, "sourceId" : "43", "tags" : "Relationship" @@ -4632,7 +4632,7 @@ "destinationId" : "9", "id" : "45", "properties" : { - "structurizr.dsl.identifier" : "500d6b06-41af-42fb-a488-88105e3412ff" + "structurizr.dsl.identifier" : "43aab325-bf9f-4a5f-943c-c7d87d3e31ef" }, "sourceId" : "44", "tags" : "Relationship" @@ -4640,7 +4640,7 @@ "destinationId" : "13", "id" : "46", "properties" : { - "structurizr.dsl.identifier" : "c48baa8a-65dd-4112-9441-9a254772aa2e" + "structurizr.dsl.identifier" : "dab952ce-9820-4ac9-ab12-61e4e20dd7cd" }, "sourceId" : "44", "tags" : "Relationship" @@ -4648,7 +4648,7 @@ "destinationId" : "16", "id" : "47", "properties" : { - "structurizr.dsl.identifier" : "3d582ea7-4159-4de2-b0dd-2d1714a98387" + "structurizr.dsl.identifier" : "5e341d1e-01a9-48f9-9042-7b2faaa85a3e" }, "sourceId" : "44", "tags" : "Relationship" @@ -4656,7 +4656,7 @@ "destinationId" : "7", "id" : "48", "properties" : { - "structurizr.dsl.identifier" : "0ad855af-9889-4d3e-b13d-01d1eca318ff" + "structurizr.dsl.identifier" : "f0b7dcbb-6f49-4e2b-a844-dc54a18ed29b" }, "sourceId" : "44", "tags" : "Relationship" @@ -4664,7 +4664,7 @@ "destinationId" : "10", "id" : "159", "properties" : { - "structurizr.dsl.identifier" : "693a1b64-cc14-4cc3-b1e2-d9338418e6da" + "structurizr.dsl.identifier" : "53d84778-d5bc-4003-a4e1-740d9bb2250c" }, "sourceId" : "44", "tags" : "Relationship" @@ -4683,7 +4683,7 @@ "destinationId" : "9", "id" : "51", "properties" : { - "structurizr.dsl.identifier" : "a2b1b1f3-d08b-4563-ba7f-0171d75c6c0d" + "structurizr.dsl.identifier" : "f7173b25-08f5-43ef-9aad-b735f5a8d85a" }, "sourceId" : "50", "tags" : "Relationship" @@ -4691,7 +4691,7 @@ "destinationId" : "13", "id" : "52", "properties" : { - "structurizr.dsl.identifier" : "28a2beae-12de-4b92-a857-d683e60e3cb8" + "structurizr.dsl.identifier" : "4ada7709-f68a-4c24-8156-4644e7a8b813" }, "sourceId" : "50", "tags" : "Relationship" @@ -4699,7 +4699,7 @@ "destinationId" : "16", "id" : "53", "properties" : { - "structurizr.dsl.identifier" : "6475a238-b8e8-48eb-87d2-9d3a41d7d8e1" + "structurizr.dsl.identifier" : "fe9838c5-5855-461e-af93-8491887c5357" }, "sourceId" : "50", "tags" : "Relationship" @@ -4707,7 +4707,7 @@ "destinationId" : "7", "id" : "54", "properties" : { - "structurizr.dsl.identifier" : "ea896bb7-6f8c-4c68-a213-fa15759efdba" + "structurizr.dsl.identifier" : "bdb71a58-8272-4723-9ea0-3017675a1c1f" }, "sourceId" : "50", "tags" : "Relationship" @@ -4715,7 +4715,7 @@ "destinationId" : "10", "id" : "160", "properties" : { - "structurizr.dsl.identifier" : "76d33a23-a4bb-4155-a7b4-a362312139b2" + "structurizr.dsl.identifier" : "ca203b8e-22f2-4eea-959e-401f7454f980" }, "sourceId" : "50", "tags" : "Relationship" @@ -4735,7 +4735,7 @@ "destinationId" : "3", "id" : "56", "properties" : { - "structurizr.dsl.identifier" : "52c0b349-5760-4851-b1a6-e7e6dcc05ea1" + "structurizr.dsl.identifier" : "aafca154-597a-4e36-a8dc-0d40b17dac75" }, "sourceId" : "55", "tags" : "Relationship", @@ -4744,7 +4744,7 @@ "destinationId" : "9", "id" : "58", "properties" : { - "structurizr.dsl.identifier" : "c5f30f73-2090-4530-be4c-23946dfd620e" + "structurizr.dsl.identifier" : "7a173c8c-a61b-45ef-b0b7-b0eb5631581e" }, "sourceId" : "55", "tags" : "Relationship" @@ -4752,7 +4752,7 @@ "destinationId" : "13", "id" : "59", "properties" : { - "structurizr.dsl.identifier" : "1aff1462-66fc-4176-a2d4-9db59bbdf1b9" + "structurizr.dsl.identifier" : "9e458c0f-27c3-4cba-946b-4a8eebdd7c8a" }, "sourceId" : "55", "tags" : "Relationship" @@ -4760,7 +4760,7 @@ "destinationId" : "16", "id" : "60", "properties" : { - "structurizr.dsl.identifier" : "54d4d1ea-e853-4de6-aa79-75d095602256" + "structurizr.dsl.identifier" : "28e5cffb-eaf7-49be-b555-5b8780412e4a" }, "sourceId" : "55", "tags" : "Relationship" @@ -4768,7 +4768,7 @@ "destinationId" : "7", "id" : "61", "properties" : { - "structurizr.dsl.identifier" : "c8ec61d1-e682-4360-ae31-5b7c951b5295" + "structurizr.dsl.identifier" : "256b3585-0faf-4575-8dde-ea3c75cad0cf" }, "sourceId" : "55", "tags" : "Relationship" @@ -4776,7 +4776,7 @@ "destinationId" : "10", "id" : "161", "properties" : { - "structurizr.dsl.identifier" : "c3196b08-d015-4411-a783-dc740b3f186c" + "structurizr.dsl.identifier" : "4eb3ccc0-e563-422e-8156-c77701aefe54" }, "sourceId" : "55", "tags" : "Relationship" @@ -4795,7 +4795,7 @@ "destinationId" : "9", "id" : "63", "properties" : { - "structurizr.dsl.identifier" : "29e39f72-cdfb-4744-af3e-23c17d138f52" + "structurizr.dsl.identifier" : "fdd623eb-6751-4021-a432-6d43e0737f72" }, "sourceId" : "62", "tags" : "Relationship" @@ -4803,7 +4803,7 @@ "destinationId" : "13", "id" : "64", "properties" : { - "structurizr.dsl.identifier" : "6c002e17-c935-4236-983a-6e494fc79995" + "structurizr.dsl.identifier" : "81cee208-b384-44b1-8b97-dc9f8c24578d" }, "sourceId" : "62", "tags" : "Relationship" @@ -4811,7 +4811,7 @@ "destinationId" : "16", "id" : "65", "properties" : { - "structurizr.dsl.identifier" : "e6c58136-7789-42b2-b7b8-b7fd872ad148" + "structurizr.dsl.identifier" : "6b2a773d-6c56-4d16-9f58-c5b220510c9c" }, "sourceId" : "62", "tags" : "Relationship" @@ -4819,7 +4819,7 @@ "destinationId" : "7", "id" : "66", "properties" : { - "structurizr.dsl.identifier" : "c0f5594a-fda1-42bf-a1d6-6e79aa78f3f0" + "structurizr.dsl.identifier" : "3373a932-c42c-4ace-8749-41680308bf7b" }, "sourceId" : "62", "tags" : "Relationship" @@ -4827,7 +4827,7 @@ "destinationId" : "10", "id" : "162", "properties" : { - "structurizr.dsl.identifier" : "5da2962e-5dbc-4b49-bffe-f065348f59a5" + "structurizr.dsl.identifier" : "50a98dc9-f3b5-468f-8681-fc9350637efa" }, "sourceId" : "62", "tags" : "Relationship" @@ -4847,7 +4847,7 @@ "destinationId" : "36", "id" : "68", "properties" : { - "structurizr.dsl.identifier" : "de36d310-96f8-4e1b-b599-2a2496d96fef" + "structurizr.dsl.identifier" : "fbf9a56c-8f87-4208-9330-996bdaeca63f" }, "sourceId" : "67", "tags" : "Relationship", @@ -4856,7 +4856,7 @@ "destinationId" : "9", "id" : "69", "properties" : { - "structurizr.dsl.identifier" : "a108c8e9-26de-4796-b98d-587c77fdd025" + "structurizr.dsl.identifier" : "9319597d-2f66-4e9e-ac4b-bebcd5647395" }, "sourceId" : "67", "tags" : "Relationship" @@ -4864,7 +4864,7 @@ "destinationId" : "13", "id" : "70", "properties" : { - "structurizr.dsl.identifier" : "80104fdc-fff1-4244-971e-5d9a5aa4a380" + "structurizr.dsl.identifier" : "7bda69fa-580f-4530-b1d2-0715a9dd4b08" }, "sourceId" : "67", "tags" : "Relationship" @@ -4872,7 +4872,7 @@ "destinationId" : "16", "id" : "71", "properties" : { - "structurizr.dsl.identifier" : "ca50efec-cc2b-4271-b848-e532568e940d" + "structurizr.dsl.identifier" : "286bbe5e-f12d-47f5-a66c-5c02c9f03ed1" }, "sourceId" : "67", "tags" : "Relationship" @@ -4880,7 +4880,7 @@ "destinationId" : "7", "id" : "72", "properties" : { - "structurizr.dsl.identifier" : "6fb8b4ec-a6e9-48b0-9102-521e4f1cccb4" + "structurizr.dsl.identifier" : "be3d8c1a-69e6-4a7a-815a-f503fde114af" }, "sourceId" : "67", "tags" : "Relationship" @@ -4889,7 +4889,7 @@ "destinationId" : "24", "id" : "152", "properties" : { - "structurizr.dsl.identifier" : "c195516b-7788-4d69-a059-3009e7775cda" + "structurizr.dsl.identifier" : "92b13f0c-7f4f-4639-b17c-49474743c6f4" }, "sourceId" : "67", "tags" : "Relationship", @@ -4898,7 +4898,7 @@ "destinationId" : "10", "id" : "163", "properties" : { - "structurizr.dsl.identifier" : "b0b83efc-f27b-4cd0-9012-2a51f31984af" + "structurizr.dsl.identifier" : "eaf58e60-aaf2-41cd-9440-8c0e69213305" }, "sourceId" : "67", "tags" : "Relationship" @@ -4918,7 +4918,7 @@ "destinationId" : "26", "id" : "74", "properties" : { - "structurizr.dsl.identifier" : "2c8a0eaa-98f2-4099-b171-eb1e4df66640" + "structurizr.dsl.identifier" : "cca8f892-4f70-476b-a14a-82809b3283b6" }, "sourceId" : "73", "tags" : "Relationship", @@ -4928,7 +4928,7 @@ "destinationId" : "36", "id" : "75", "properties" : { - "structurizr.dsl.identifier" : "6a3c525b-ef7c-4292-82c4-484225e66621" + "structurizr.dsl.identifier" : "cb320b3e-ede6-4c50-838d-67a7bb6f0a3a" }, "sourceId" : "73", "tags" : "Relationship", @@ -4938,7 +4938,7 @@ "destinationId" : "28", "id" : "76", "properties" : { - "structurizr.dsl.identifier" : "741d35e5-a63d-4be9-bbb5-44234cd69b54" + "structurizr.dsl.identifier" : "4c6693fd-7d20-4528-9fc1-a90e81411bdb" }, "sourceId" : "73", "tags" : "Relationship", @@ -4947,7 +4947,7 @@ "destinationId" : "9", "id" : "77", "properties" : { - "structurizr.dsl.identifier" : "a82fe170-52c3-4d82-80e0-5e648d3a875e" + "structurizr.dsl.identifier" : "0ea7029e-45f4-456a-9eb5-847bf2ec364b" }, "sourceId" : "73", "tags" : "Relationship" @@ -4955,7 +4955,7 @@ "destinationId" : "13", "id" : "78", "properties" : { - "structurizr.dsl.identifier" : "ba1e4c0e-d5a4-4e04-887f-16339b15d20e" + "structurizr.dsl.identifier" : "e1726d1d-a94c-4b41-96a6-bf8645c4afb6" }, "sourceId" : "73", "tags" : "Relationship" @@ -4963,7 +4963,7 @@ "destinationId" : "16", "id" : "79", "properties" : { - "structurizr.dsl.identifier" : "53cae99d-ae81-4e23-ac07-587628752cd4" + "structurizr.dsl.identifier" : "b5425311-7987-44b0-93f1-733abe98b863" }, "sourceId" : "73", "tags" : "Relationship" @@ -4971,7 +4971,7 @@ "destinationId" : "7", "id" : "80", "properties" : { - "structurizr.dsl.identifier" : "45b2c91c-fea1-4f2d-873f-5fe974b3acbf" + "structurizr.dsl.identifier" : "ae59c142-9332-421e-a821-24199f3d77a1" }, "sourceId" : "73", "tags" : "Relationship" @@ -4980,7 +4980,7 @@ "destinationId" : "24", "id" : "153", "properties" : { - "structurizr.dsl.identifier" : "e94f6fc7-2553-4c5f-a7ab-f61bbb46e702" + "structurizr.dsl.identifier" : "9693e746-66e7-42a8-99a0-a23539a391d8" }, "sourceId" : "73", "tags" : "Relationship" @@ -4988,7 +4988,7 @@ "destinationId" : "10", "id" : "164", "properties" : { - "structurizr.dsl.identifier" : "58944e54-274b-481e-891e-ba491df59fa6" + "structurizr.dsl.identifier" : "f23cf61a-705b-4988-b864-6eab69457e03" }, "sourceId" : "73", "tags" : "Relationship" @@ -5008,7 +5008,7 @@ "destinationId" : "9", "id" : "82", "properties" : { - "structurizr.dsl.identifier" : "9b50ccf4-d2c3-40d7-88d7-0d484f464006" + "structurizr.dsl.identifier" : "e7282a17-860d-4297-bc1b-200d215a7a9f" }, "sourceId" : "81", "tags" : "Relationship", @@ -5018,7 +5018,7 @@ "destinationId" : "21", "id" : "83", "properties" : { - "structurizr.dsl.identifier" : "fecbd1dd-ebe1-4293-99e8-276a08a0715c" + "structurizr.dsl.identifier" : "105646a9-9097-423e-aadb-79e23f29481b" }, "sourceId" : "81", "tags" : "Relationship", @@ -5028,7 +5028,7 @@ "destinationId" : "3", "id" : "84", "properties" : { - "structurizr.dsl.identifier" : "d760bf18-030b-4586-87cf-465b71ef499c" + "structurizr.dsl.identifier" : "8dc9752b-6d07-4b20-972a-ffefa9ba7b2a" }, "sourceId" : "81", "tags" : "Relationship", @@ -5038,7 +5038,7 @@ "destinationId" : "1", "id" : "85", "properties" : { - "structurizr.dsl.identifier" : "a3405217-8878-493c-bc30-e42c16e27025" + "structurizr.dsl.identifier" : "282b03cd-2872-4880-8e68-5195e34978b9" }, "sourceId" : "81", "tags" : "Relationship", @@ -5048,7 +5048,7 @@ "destinationId" : "36", "id" : "87", "properties" : { - "structurizr.dsl.identifier" : "08be2cb3-a15a-40ec-b87a-f6484e9c5f28" + "structurizr.dsl.identifier" : "f44027a0-4648-44d4-a7f1-6942c4995a2d" }, "sourceId" : "81", "tags" : "Relationship", @@ -5058,7 +5058,7 @@ "destinationId" : "7", "id" : "88", "properties" : { - "structurizr.dsl.identifier" : "67eb41f4-f5a9-4c36-ae9d-8c77d6434c42" + "structurizr.dsl.identifier" : "dd28bb85-3fcb-4a61-9ef9-85e9724397b6" }, "sourceId" : "81", "tags" : "Relationship", @@ -5068,7 +5068,7 @@ "destinationId" : "16", "id" : "89", "properties" : { - "structurizr.dsl.identifier" : "c379d557-176a-4257-b8db-025ba8f90816" + "structurizr.dsl.identifier" : "69213480-4044-41d8-bf10-9d9656b0308a" }, "sourceId" : "81", "tags" : "Relationship", @@ -5078,7 +5078,7 @@ "destinationId" : "13", "id" : "90", "properties" : { - "structurizr.dsl.identifier" : "3f0efeaf-f60e-49ed-9328-3fb41a254fa3" + "structurizr.dsl.identifier" : "18c99f53-9458-40e0-977d-6c44d9541f53" }, "sourceId" : "81", "tags" : "Relationship", @@ -5088,7 +5088,7 @@ "destinationId" : "22", "id" : "91", "properties" : { - "structurizr.dsl.identifier" : "eddebe1d-4d65-49d3-b49f-e913778ad955" + "structurizr.dsl.identifier" : "9ee377fa-51b8-466d-90d8-b94a517d5409" }, "sourceId" : "81", "tags" : "Relationship", @@ -5098,7 +5098,7 @@ "destinationId" : "23", "id" : "92", "properties" : { - "structurizr.dsl.identifier" : "c622fe05-09bf-4b34-800a-f6feb8f8db5a" + "structurizr.dsl.identifier" : "98b2b3a0-86e6-4b03-a1ce-719352a278a9" }, "sourceId" : "81", "tags" : "Relationship,Optional Relationship", @@ -5108,7 +5108,7 @@ "destinationId" : "20", "id" : "93", "properties" : { - "structurizr.dsl.identifier" : "8bab8038-6e57-4625-be4c-879cecfda6cb" + "structurizr.dsl.identifier" : "9f9ceb1f-e768-467f-ba26-f6b440758ad9" }, "sourceId" : "81", "tags" : "Relationship", @@ -5118,7 +5118,7 @@ "destinationId" : "24", "id" : "148", "properties" : { - "structurizr.dsl.identifier" : "e8b641db-2ff0-48c9-8a58-86dab41d7f95" + "structurizr.dsl.identifier" : "5626a4a4-806e-4c82-b4bf-0353d0c4d630" }, "sourceId" : "81", "tags" : "Relationship" @@ -5127,7 +5127,7 @@ "destinationId" : "10", "id" : "157", "properties" : { - "structurizr.dsl.identifier" : "02f9b25e-7d5c-41b0-943d-3d55959b3618" + "structurizr.dsl.identifier" : "e4d0884e-26f6-405a-92d7-d2c207b3ecb1" }, "sourceId" : "81", "tags" : "Relationship" @@ -5147,7 +5147,7 @@ "destinationId" : "9", "id" : "95", "properties" : { - "structurizr.dsl.identifier" : "65303f9e-37fa-42d5-b28a-d4622bc0c871" + "structurizr.dsl.identifier" : "c84eb5ab-d2e9-4e7c-a65d-c3325017ee8d" }, "sourceId" : "94", "tags" : "Relationship", @@ -5157,7 +5157,7 @@ "destinationId" : "36", "id" : "96", "properties" : { - "structurizr.dsl.identifier" : "676eb470-35d5-4f13-8295-45cb4b44ed75" + "structurizr.dsl.identifier" : "8b006a74-59df-4c85-a0e4-625f541dae1c" }, "sourceId" : "94", "tags" : "Relationship", @@ -5167,7 +5167,7 @@ "destinationId" : "30", "id" : "97", "properties" : { - "structurizr.dsl.identifier" : "497a45c1-f14d-4e49-a1d3-02657ad24b59" + "structurizr.dsl.identifier" : "fce57d5f-5615-4ac9-9ce4-0de87bbe9604" }, "sourceId" : "94", "tags" : "Relationship", @@ -5177,7 +5177,7 @@ "destinationId" : "26", "id" : "98", "properties" : { - "structurizr.dsl.identifier" : "5a1acdc9-12f4-4a90-9e35-7d4741b9d865" + "structurizr.dsl.identifier" : "4efae862-630c-48d3-9c0f-486057300b6a" }, "sourceId" : "94", "tags" : "Relationship", @@ -5187,7 +5187,7 @@ "destinationId" : "7", "id" : "99", "properties" : { - "structurizr.dsl.identifier" : "520522cd-1d34-4c9b-a6af-d290ebc3f610" + "structurizr.dsl.identifier" : "fed4d15e-22bb-46ff-80c4-c7f817434886" }, "sourceId" : "94", "tags" : "Relationship", @@ -5197,7 +5197,7 @@ "destinationId" : "16", "id" : "100", "properties" : { - "structurizr.dsl.identifier" : "3fe188f2-7d9b-4175-acc6-4515d9c1cae9" + "structurizr.dsl.identifier" : "429836de-4ed0-4dd1-afd4-d8ce52182a62" }, "sourceId" : "94", "tags" : "Relationship", @@ -5207,7 +5207,7 @@ "destinationId" : "13", "id" : "101", "properties" : { - "structurizr.dsl.identifier" : "a62b598f-4a21-44a2-95d1-d1d71d55adc6" + "structurizr.dsl.identifier" : "c55a9e14-7c1b-4cd6-b9b0-beee0d1662e8" }, "sourceId" : "94", "tags" : "Relationship", @@ -5217,7 +5217,7 @@ "destinationId" : "20", "id" : "102", "properties" : { - "structurizr.dsl.identifier" : "4280945b-a227-443a-97c4-ecfaaee8b5ed" + "structurizr.dsl.identifier" : "74ada1b9-a675-4cff-8512-c978184290f5" }, "sourceId" : "94", "tags" : "Relationship", @@ -5227,7 +5227,7 @@ "destinationId" : "24", "id" : "149", "properties" : { - "structurizr.dsl.identifier" : "045056d0-8e51-4afb-85c7-3acddf2848e7" + "structurizr.dsl.identifier" : "e08df186-1a91-44a8-85a0-8ac3b3b909e4" }, "sourceId" : "94", "tags" : "Relationship" @@ -5236,7 +5236,7 @@ "destinationId" : "10", "id" : "158", "properties" : { - "structurizr.dsl.identifier" : "14356fc1-bb2d-4cf1-bbcb-3e7a6e005067" + "structurizr.dsl.identifier" : "b20c01dc-0783-4758-af06-ce230bb03248" }, "sourceId" : "94", "tags" : "Relationship" @@ -5256,7 +5256,7 @@ "destinationId" : "81", "id" : "143", "properties" : { - "structurizr.dsl.identifier" : "13b5ce3e-d3b0-483b-9e68-88e6692c1488" + "structurizr.dsl.identifier" : "c0d79b45-3d2c-4cc2-8d9f-ee41fbafeeeb" }, "sourceId" : "103", "tags" : "Relationship,omit_in_gcp", @@ -5266,7 +5266,7 @@ "destinationId" : "2", "id" : "144", "properties" : { - "structurizr.dsl.identifier" : "d7c931b8-dbc1-4ffa-bb6d-185d8799fa23" + "structurizr.dsl.identifier" : "cd815e37-ccb9-4b9e-999b-14fb9b71fc54" }, "sourceId" : "103", "tags" : "Relationship", @@ -5276,7 +5276,7 @@ "destinationId" : "1", "id" : "145", "properties" : { - "structurizr.dsl.identifier" : "5aa9c5e0-9128-4c6a-8350-2fc06d96031a" + "structurizr.dsl.identifier" : "475fc777-3add-4ff8-82c2-021946eb56f8" }, "sourceId" : "103", "tags" : "Relationship", @@ -5298,7 +5298,7 @@ "destinationId" : "3", "id" : "105", "properties" : { - "structurizr.dsl.identifier" : "da4bb21d-2deb-4a99-9f5d-943048858f52" + "structurizr.dsl.identifier" : "ee49b96e-9b59-47c0-a7d6-9f15842fde26" }, "sourceId" : "104", "tags" : "Relationship", @@ -5308,7 +5308,7 @@ "destinationId" : "1", "id" : "106", "properties" : { - "structurizr.dsl.identifier" : "d6cc7ca1-1f73-4b9c-a074-41af04e360f8" + "structurizr.dsl.identifier" : "21bb4dab-43e6-4ee6-b489-c4450f507729" }, "sourceId" : "104", "tags" : "Relationship", @@ -5318,7 +5318,7 @@ "destinationId" : "2", "id" : "107", "properties" : { - "structurizr.dsl.identifier" : "6661db7f-1914-431c-9245-c31f629014ce" + "structurizr.dsl.identifier" : "c7bd8cad-1944-44e5-b598-e26250ca9b4f" }, "sourceId" : "104", "tags" : "Relationship", @@ -5328,7 +5328,7 @@ "destinationId" : "81", "id" : "109", "properties" : { - "structurizr.dsl.identifier" : "e11a7f3b-0205-40c9-b7a9-6934227d1f98" + "structurizr.dsl.identifier" : "aeaa713c-fdd9-4f78-921d-8160d26d8b62" }, "sourceId" : "104", "tags" : "Relationship,omit_in_gcp", @@ -5350,7 +5350,7 @@ "destinationId" : "81", "id" : "111", "properties" : { - "structurizr.dsl.identifier" : "7c357818-ca66-44eb-a1c9-c859f1601dc6" + "structurizr.dsl.identifier" : "538481a8-5d13-4a6f-b290-0b06239fa2a6" }, "sourceId" : "110", "tags" : "Relationship,omit_in_gcp", @@ -5360,7 +5360,7 @@ "destinationId" : "104", "id" : "112", "properties" : { - "structurizr.dsl.identifier" : "2cf78152-802a-4e00-af76-3ea2a70b4a26" + "structurizr.dsl.identifier" : "b9bf57d2-6ae3-4a0a-acdb-2ed6e65d05e5" }, "sourceId" : "110", "tags" : "Relationship", @@ -5382,7 +5382,7 @@ "destinationId" : "81", "id" : "114", "properties" : { - "structurizr.dsl.identifier" : "7520043b-d490-4c43-8545-e82d15c10fbc" + "structurizr.dsl.identifier" : "5bf8be9d-df33-4807-8338-59d4aa651913" }, "sourceId" : "113", "tags" : "Relationship,omit_in_gcp", @@ -5404,7 +5404,7 @@ "destinationId" : "81", "id" : "116", "properties" : { - "structurizr.dsl.identifier" : "bddb4d10-c331-4f85-99d0-a3fb5e9ec82c" + "structurizr.dsl.identifier" : "4892f3ff-b8ce-4550-84d1-6e00269c5e62" }, "sourceId" : "115", "tags" : "Relationship,omit_in_gcp", @@ -5495,7 +5495,7 @@ "configuration" : { "branding" : { }, "defaultView" : "RelaySystemContext", - "lastSavedView" : "RelayProductionDeployment", + "lastSavedView" : "RelayContainersAllDetails", "metadataSymbols" : "SquareBrackets", "properties" : { "structurizr.sort" : "created" @@ -7170,7 +7170,7 @@ "position" : 20 }, { "id" : "38", - "position" : 70, + "position" : 10, "vertices" : [ { "x" : 4354, "y" : 1620 @@ -7847,20 +7847,22 @@ } ] }, { "id" : "198", - "position" : 35 - }, { - "id" : "199", - "position" : 35 - }, { - "id" : "200", "vertices" : [ { "x" : 4050, "y" : 1799 } ] + }, { + "id" : "199" + }, { + "id" : "200", + "position" : 35 }, { "id" : "201" }, { "id" : "202", + "position" : 35 + }, { + "id" : "203", "position" : 25, "vertices" : [ { "x" : 4375, @@ -7870,9 +7872,9 @@ "y" : 1520 } ] }, { - "id" : "203" + "id" : "208" }, { - "id" : "208", + "id" : "209", "position" : 25, "vertices" : [ { "x" : 4300, @@ -7885,7 +7887,13 @@ "y" : 724 } ] }, { - "id" : "209", + "id" : "210", + "vertices" : [ { + "x" : 1550, + "y" : 604 + } ] + }, { + "id" : "211", "position" : 50, "vertices" : [ { "x" : 2370, @@ -7894,14 +7902,6 @@ "x" : 3480, "y" : 759 } ] - }, { - "id" : "210" - }, { - "id" : "211", - "vertices" : [ { - "x" : 1550, - "y" : 604 - } ] }, { "id" : "214", "position" : 30, @@ -7933,16 +7933,6 @@ "id" : "220" }, { "id" : "223", - "position" : 15, - "vertices" : [ { - "x" : 2584, - "y" : 1199 - }, { - "x" : 2584, - "y" : 1534 - } ] - }, { - "id" : "224", "position" : 40, "vertices" : [ { "x" : 1930, @@ -7951,6 +7941,16 @@ "x" : 1930, "y" : 1519 } ] + }, { + "id" : "224", + "position" : 15, + "vertices" : [ { + "x" : 2584, + "y" : 1199 + }, { + "x" : 2584, + "y" : 1534 + } ] }, { "id" : "227", "vertices" : [ { @@ -7990,15 +7990,6 @@ } ] }, { "id" : "235", - "vertices" : [ { - "x" : 1990, - "y" : 2109 - }, { - "x" : 1990, - "y" : 1579 - } ] - }, { - "id" : "236", "position" : 20, "vertices" : [ { "x" : 2770, @@ -8010,9 +8001,31 @@ "x" : 3335, "y" : 919 } ] + }, { + "id" : "236", + "vertices" : [ { + "x" : 1990, + "y" : 2109 + }, { + "x" : 1990, + "y" : 1579 + } ] }, { "id" : "238", "position" : 10, + "vertices" : [ { + "x" : 3344, + "y" : 2889 + }, { + "x" : 3559, + "y" : 3119 + }, { + "x" : 4315, + "y" : 3124 + } ] + }, { + "id" : "239", + "position" : 10, "vertices" : [ { "x" : 2995, "y" : 2614 @@ -8023,15 +8036,6 @@ "x" : 3484, "y" : 1304 } ] - }, { - "id" : "239", - "vertices" : [ { - "x" : 1970, - "y" : 2769 - }, { - "x" : 1970, - "y" : 1559 - } ] }, { "id" : "240", "position" : 10, @@ -8044,25 +8048,21 @@ } ] }, { "id" : "241", - "position" : 10, "vertices" : [ { - "x" : 3344, - "y" : 2889 + "x" : 1970, + "y" : 2769 }, { - "x" : 3559, - "y" : 3119 - }, { - "x" : 4315, - "y" : 3124 + "x" : 1970, + "y" : 1559 } ] }, { "id" : "244", "vertices" : [ { - "x" : 1730, - "y" : 2309 + "x" : 1770, + "y" : 2149 }, { - "x" : 1730, - "y" : 3009 + "x" : 1770, + "y" : 3049 } ] }, { "id" : "245", @@ -8083,32 +8083,14 @@ }, { "id" : "246", "vertices" : [ { - "x" : 1780, - "y" : 2479 + "x" : 1730, + "y" : 2309 }, { - "x" : 1780, - "y" : 3059 + "x" : 1730, + "y" : 3009 } ] }, { "id" : "247", - "vertices" : [ { - "x" : 1770, - "y" : 2149 - }, { - "x" : 1770, - "y" : 3049 - } ] - }, { - "id" : "248", - "vertices" : [ { - "x" : 1740, - "y" : 1989 - }, { - "x" : 1740, - "y" : 3019 - } ] - }, { - "id" : "249", "vertices" : [ { "x" : 1790, "y" : 2809 @@ -8117,16 +8099,16 @@ "y" : 3069 } ] }, { - "id" : "250", + "id" : "248", "vertices" : [ { - "x" : 1720, - "y" : 2639 + "x" : 1780, + "y" : 2479 }, { - "x" : 1720, - "y" : 2999 + "x" : 1780, + "y" : 3059 } ] }, { - "id" : "251", + "id" : "249", "position" : 15, "vertices" : [ { "x" : 1750, @@ -8135,6 +8117,24 @@ "x" : 1750, "y" : 3029 } ] + }, { + "id" : "250", + "vertices" : [ { + "x" : 1740, + "y" : 1989 + }, { + "x" : 1740, + "y" : 3019 + } ] + }, { + "id" : "251", + "vertices" : [ { + "x" : 1720, + "y" : 2639 + }, { + "x" : 1720, + "y" : 2999 + } ] }, { "id" : "255", "vertices" : [ { @@ -8155,7 +8155,16 @@ "y" : 1269 } ] }, { - "id" : "259", + "id" : "259" + }, { + "id" : "260", + "position" : 70, + "vertices" : [ { + "x" : 1129, + "y" : 675 + } ] + }, { + "id" : "261", "position" : 15, "vertices" : [ { "x" : 875, @@ -8164,15 +8173,6 @@ "x" : 875, "y" : 874 } ] - }, { - "id" : "260" - }, { - "id" : "261", - "position" : 70, - "vertices" : [ { - "x" : 1129, - "y" : 675 - } ] }, { "id" : "264", "position" : 15, @@ -8208,11 +8208,11 @@ }, { "id" : "268", "vertices" : [ { - "x" : 1830, - "y" : 2289 + "x" : 1870, + "y" : 2129 }, { - "x" : 1830, - "y" : 3059 + "x" : 1870, + "y" : 3019 } ] }, { "id" : "269", @@ -8230,32 +8230,14 @@ }, { "id" : "270", "vertices" : [ { - "x" : 1880, - "y" : 2459 + "x" : 1830, + "y" : 2289 }, { - "x" : 1880, - "y" : 3009 + "x" : 1830, + "y" : 3059 } ] }, { "id" : "271", - "vertices" : [ { - "x" : 1870, - "y" : 2129 - }, { - "x" : 1870, - "y" : 3019 - } ] - }, { - "id" : "272", - "vertices" : [ { - "x" : 1840, - "y" : 1969 - }, { - "x" : 1840, - "y" : 3049 - } ] - }, { - "id" : "273", "vertices" : [ { "x" : 1890, "y" : 2789 @@ -8264,16 +8246,16 @@ "y" : 2999 } ] }, { - "id" : "274", + "id" : "272", "vertices" : [ { - "x" : 1820, - "y" : 2619 + "x" : 1880, + "y" : 2459 }, { - "x" : 1820, - "y" : 3069 + "x" : 1880, + "y" : 3009 } ] }, { - "id" : "275", + "id" : "273", "position" : 10, "vertices" : [ { "x" : 1850, @@ -8282,6 +8264,24 @@ "x" : 1850, "y" : 3039 } ] + }, { + "id" : "274", + "vertices" : [ { + "x" : 1840, + "y" : 1969 + }, { + "x" : 1840, + "y" : 3049 + } ] + }, { + "id" : "275", + "vertices" : [ { + "x" : 1820, + "y" : 2619 + }, { + "x" : 1820, + "y" : 3069 + } ] }, { "id" : "278", "position" : 85, @@ -8650,23 +8650,10 @@ "y" : 2266 } ] }, { - "id" : "309" - }, { - "id" : "310", + "id" : "309", "position" : 25 }, { - "id" : "311" - }, { - "id" : "312", - "vertices" : [ { - "x" : 5820, - "y" : 2645 - } ] - }, { - "id" : "313", - "position" : 35 - }, { - "id" : "314", + "id" : "310", "position" : 15, "vertices" : [ { "x" : 6130, @@ -8676,7 +8663,20 @@ "y" : 2620 } ] }, { - "id" : "323", + "id" : "311", + "vertices" : [ { + "x" : 5820, + "y" : 2645 + } ] + }, { + "id" : "312", + "position" : 35 + }, { + "id" : "313" + }, { + "id" : "314" + }, { + "id" : "320", "vertices" : [ { "x" : 2000, "y" : 2525 @@ -8688,7 +8688,7 @@ "y" : 1565 } ] }, { - "id" : "330", + "id" : "327", "vertices" : [ { "x" : 2280, "y" : 1560 @@ -8698,10 +8698,13 @@ } ] }, { "id" : "335", - "position" : 10, + "position" : 5, "vertices" : [ { - "x" : 5245, - "y" : 3530 + "x" : 4696, + "y" : 1650 + }, { + "x" : 6446, + "y" : 1660 } ] }, { "id" : "336", @@ -8712,26 +8715,13 @@ } ] }, { "id" : "337", - "position" : 5, + "position" : 10, "vertices" : [ { - "x" : 4696, - "y" : 1650 - }, { - "x" : 6446, - "y" : 1660 + "x" : 5245, + "y" : 3530 } ] }, { "id" : "342", - "position" : 45, - "vertices" : [ { - "x" : 4611, - "y" : 4040 - }, { - "x" : 6031, - "y" : 4045 - } ] - }, { - "id" : "343", "position" : 15, "vertices" : [ { "x" : 4846, @@ -8740,6 +8730,16 @@ "x" : 5230, "y" : 2420 } ] + }, { + "id" : "343", + "position" : 45, + "vertices" : [ { + "x" : 4611, + "y" : 4040 + }, { + "x" : 6031, + "y" : 4045 + } ] }, { "id" : "344", "position" : 10, @@ -8768,6 +8768,15 @@ } ] }, { "id" : "358", + "vertices" : [ { + "x" : 3695, + "y" : 3380 + }, { + "x" : 3695, + "y" : 3795 + } ] + }, { + "id" : "359", "position" : 25, "vertices" : [ { "x" : 3685, @@ -8776,31 +8785,17 @@ "x" : 3685, "y" : 3785 } ] - }, { - "id" : "359" }, { "id" : "360", "vertices" : [ { - "x" : 2815, - "y" : 3380 + "x" : 3695, + "y" : 4210 }, { - "x" : 2815, - "y" : 3795 + "x" : 3695, + "y" : 3815 } ] }, { "id" : "361", - "position" : 25, - "vertices" : [ { - "x" : 2825, - "y" : 2870 - }, { - "x" : 2825, - "y" : 3785 - } ] - }, { - "id" : "362" - }, { - "id" : "363", "position" : 20, "vertices" : [ { "x" : 2835, @@ -8810,34 +8805,48 @@ "y" : 3775 } ] }, { - "id" : "364", - "vertices" : [ { - "x" : 3695, - "y" : 4210 - }, { - "x" : 3695, - "y" : 3815 - } ] - }, { - "id" : "365", + "id" : "362", "vertices" : [ { "x" : 2815, - "y" : 4210 - }, { - "x" : 2815, - "y" : 3815 - } ] - }, { - "id" : "366", - "vertices" : [ { - "x" : 3695, "y" : 3380 }, { - "x" : 3695, + "x" : 2815, "y" : 3795 } ] + }, { + "id" : "363", + "position" : 25, + "vertices" : [ { + "x" : 2825, + "y" : 2870 + }, { + "x" : 2825, + "y" : 3785 + } ] + }, { + "id" : "364" + }, { + "id" : "365" + }, { + "id" : "366", + "vertices" : [ { + "x" : 2815, + "y" : 4210 + }, { + "x" : 2815, + "y" : 3815 + } ] }, { "id" : "369", + "vertices" : [ { + "x" : 3575, + "y" : 3360 + }, { + "x" : 3575, + "y" : 2810 + } ] + }, { + "id" : "370", "position" : 50, "vertices" : [ { "x" : 3575, @@ -8847,16 +8856,34 @@ "y" : 2800 } ] }, { - "id" : "370", + "id" : "371", "vertices" : [ { - "x" : 2905, - "y" : 3710 + "x" : 3555, + "y" : 4230 }, { - "x" : 2905, - "y" : 2820 + "x" : 3555, + "y" : 2830 } ] }, { - "id" : "371", + "id" : "372", + "vertices" : [ { + "x" : 3485, + "y" : 3525 + }, { + "x" : 3485, + "y" : 3065 + } ] + }, { + "id" : "373", + "vertices" : [ { + "x" : 2915, + "y" : 2480 + }, { + "x" : 2915, + "y" : 2790 + } ] + }, { + "id" : "374", "vertices" : [ { "x" : 2895, "y" : 3360 @@ -8865,7 +8892,7 @@ "y" : 2810 } ] }, { - "id" : "372", + "id" : "375", "position" : 65, "vertices" : [ { "x" : 2905, @@ -8875,7 +8902,16 @@ "y" : 2800 } ] }, { - "id" : "373", + "id" : "376", + "vertices" : [ { + "x" : 2905, + "y" : 3710 + }, { + "x" : 2905, + "y" : 2820 + } ] + }, { + "id" : "377", "vertices" : [ { "x" : 3565, "y" : 3710 @@ -8883,55 +8919,28 @@ "x" : 3565, "y" : 2820 } ] - }, { - "id" : "374", - "vertices" : [ { - "x" : 2915, - "y" : 2480 - }, { - "x" : 2915, - "y" : 2790 - } ] - }, { - "id" : "375", - "vertices" : [ { - "x" : 3555, - "y" : 4230 - }, { - "x" : 3555, - "y" : 2830 - } ] - }, { - "id" : "376", - "vertices" : [ { - "x" : 2915, - "y" : 4230 - }, { - "x" : 2915, - "y" : 2830 - } ] - }, { - "id" : "377", - "vertices" : [ { - "x" : 3485, - "y" : 3525 - }, { - "x" : 3485, - "y" : 3065 - } ] }, { "id" : "378", "vertices" : [ { - "x" : 3575, - "y" : 3360 + "x" : 2915, + "y" : 4230 }, { - "x" : 3575, - "y" : 2810 + "x" : 2915, + "y" : 2830 } ] }, { "id" : "380" }, { "id" : "383", + "vertices" : [ { + "x" : 3805, + "y" : 3400 + }, { + "x" : 3805, + "y" : 4290 + } ] + }, { + "id" : "384", "position" : 20, "vertices" : [ { "x" : 3795, @@ -8940,45 +8949,17 @@ "x" : 3795, "y" : 4280 } ] - }, { - "id" : "384", - "vertices" : [ { - "x" : 2685, - "y" : 3820 - }, { - "x" : 2685, - "y" : 4300 - } ] }, { "id" : "385", "vertices" : [ { - "x" : 2695, - "y" : 3400 + "x" : 3825, + "y" : 4250 }, { - "x" : 2695, - "y" : 4290 + "x" : 3825, + "y" : 4310 } ] }, { "id" : "386", - "position" : 15, - "vertices" : [ { - "x" : 2705, - "y" : 2910 - }, { - "x" : 2705, - "y" : 4280 - } ] - }, { - "id" : "387", - "vertices" : [ { - "x" : 3815, - "y" : 3820 - }, { - "x" : 3815, - "y" : 4300 - } ] - }, { - "id" : "388", "position" : 20, "vertices" : [ { "x" : 2715, @@ -8987,17 +8968,45 @@ "x" : 2715, "y" : 4270 } ] + }, { + "id" : "387", + "vertices" : [ { + "x" : 2695, + "y" : 3400 + }, { + "x" : 2695, + "y" : 4290 + } ] + }, { + "id" : "388", + "position" : 15, + "vertices" : [ { + "x" : 2705, + "y" : 2910 + }, { + "x" : 2705, + "y" : 4280 + } ] }, { "id" : "389", "vertices" : [ { - "x" : 3825, - "y" : 4250 + "x" : 2685, + "y" : 3820 }, { - "x" : 3825, - "y" : 4310 + "x" : 2685, + "y" : 4300 } ] }, { "id" : "390", + "vertices" : [ { + "x" : 3815, + "y" : 3820 + }, { + "x" : 3815, + "y" : 4300 + } ] + }, { + "id" : "391", "vertices" : [ { "x" : 2675, "y" : 4250 @@ -9005,34 +9014,28 @@ "x" : 2675, "y" : 4310 } ] - }, { - "id" : "391", - "vertices" : [ { - "x" : 3805, - "y" : 3400 - }, { - "x" : 3805, - "y" : 4290 - } ] }, { "id" : "396", - "position" : 70, - "vertices" : [ { - "x" : 2706, - "y" : 2300 - } ] - }, { - "id" : "397", "position" : 25, "vertices" : [ { "x" : 2778, "y" : 2245 } ] + }, { + "id" : "397", + "position" : 70, + "vertices" : [ { + "x" : 2706, + "y" : 2300 + } ] }, { "id" : "400", "position" : 45 }, { "id" : "401", + "position" : 55 + }, { + "id" : "402", "position" : 65, "vertices" : [ { "x" : 2550, @@ -9042,35 +9045,7 @@ "y" : 2085 } ] }, { - "id" : "402", - "position" : 55 - }, { - "id" : "409" - }, { - "id" : "410", - "position" : 25, - "vertices" : [ { - "x" : 1070, - "y" : 3365 - }, { - "x" : 1075, - "y" : 1195 - } ] - }, { - "id" : "411", - "position" : 15, - "vertices" : [ { - "x" : 1915, - "y" : 3060 - }, { - "x" : 1235, - "y" : 3060 - }, { - "x" : 1240, - "y" : 1060 - } ] - }, { - "id" : "412", + "id" : "409", "position" : 20, "vertices" : [ { "x" : 1940, @@ -9082,8 +9057,43 @@ "x" : 1210, "y" : 1085 } ] + }, { + "id" : "410", + "position" : 25, + "vertices" : [ { + "x" : 1070, + "y" : 3365 + }, { + "x" : 1075, + "y" : 1195 + } ] + }, { + "id" : "411" + }, { + "id" : "412", + "position" : 15, + "vertices" : [ { + "x" : 1915, + "y" : 3060 + }, { + "x" : 1235, + "y" : 3060 + }, { + "x" : 1240, + "y" : 1060 + } ] }, { "id" : "415", + "position" : 30, + "vertices" : [ { + "x" : 1920, + "y" : 2470 + }, { + "x" : 925, + "y" : 2460 + } ] + }, { + "id" : "416", "position" : 20, "vertices" : [ { "x" : 1246, @@ -9096,7 +9106,7 @@ "y" : 1984 } ] }, { - "id" : "416", + "id" : "417", "position" : 25, "vertices" : [ { "x" : 1945, @@ -9105,16 +9115,6 @@ "x" : 1235, "y" : 3165 } ] - }, { - "id" : "417", - "position" : 30, - "vertices" : [ { - "x" : 1920, - "y" : 2470 - }, { - "x" : 925, - "y" : 2460 - } ] }, { "id" : "420", "position" : 40, @@ -9126,14 +9126,14 @@ "y" : 4910 } ] }, { - "id" : "423", + "id" : "423" + }, { + "id" : "424", "position" : 25, "vertices" : [ { "x" : 1101, "y" : 629 } ] - }, { - "id" : "424" }, { "id" : "427", "position" : 15, @@ -9147,33 +9147,14 @@ }, { "id" : "428", "vertices" : [ { - "x" : 2595, - "y" : 3840 + "x" : 3915, + "y" : 4270 }, { - "x" : 2595, - "y" : 5200 + "x" : 3915, + "y" : 5210 } ] }, { "id" : "429", - "position" : 10, - "vertices" : [ { - "x" : 2615, - "y" : 2945 - }, { - "x" : 2615, - "y" : 5180 - } ] - }, { - "id" : "430", - "vertices" : [ { - "x" : 3905, - "y" : 3840 - }, { - "x" : 3905, - "y" : 5200 - } ] - }, { - "id" : "431", "position" : 15, "vertices" : [ { "x" : 2625, @@ -9182,41 +9163,60 @@ "x" : 2625, "y" : 5170 } ] + }, { + "id" : "430", + "vertices" : [ { + "x" : 2605, + "y" : 3420 + }, { + "x" : 2605, + "y" : 5190 + } ] + }, { + "id" : "431", + "vertices" : [ { + "x" : 3905, + "y" : 3840 + }, { + "x" : 3905, + "y" : 5200 + } ] }, { "id" : "432", "vertices" : [ { - "x" : 3915, + "x" : 2585, "y" : 4270 }, { - "x" : 3915, + "x" : 2585, "y" : 5210 } ] }, { "id" : "433", "vertices" : [ { - "x" : 2585, - "y" : 4270 + "x" : 3895, + "y" : 3420 }, { - "x" : 2585, - "y" : 5210 + "x" : 3895, + "y" : 5190 } ] }, { "id" : "434", + "position" : 10, "vertices" : [ { - "x" : 2605, - "y" : 3420 + "x" : 2615, + "y" : 2945 }, { - "x" : 2605, - "y" : 5190 + "x" : 2615, + "y" : 5180 } ] }, { "id" : "435", "vertices" : [ { - "x" : 3895, - "y" : 3420 + "x" : 2595, + "y" : 3840 }, { - "x" : 3895, - "y" : 5190 + "x" : 2595, + "y" : 5200 } ] }, { "id" : "438", @@ -9236,6 +9236,18 @@ } ] }, { "id" : "441", + "vertices" : [ { + "x" : 2550, + "y" : 1505 + }, { + "x" : 3275, + "y" : 385 + }, { + "x" : 5965, + "y" : 390 + } ] + }, { + "id" : "442", "position" : 50, "vertices" : [ { "x" : 2860, @@ -9250,18 +9262,6 @@ "x" : 6046, "y" : 425 } ] - }, { - "id" : "442", - "vertices" : [ { - "x" : 2550, - "y" : 1505 - }, { - "x" : 3275, - "y" : 385 - }, { - "x" : 5965, - "y" : 390 - } ] }, { "id" : "443", "position" : 20, @@ -9668,12 +9668,20 @@ "y" : 2306 } ] }, { - "id" : "480" + "id" : "480", + "vertices" : [ { + "x" : 5620, + "y" : 2716 + } ] }, { "id" : "481", - "position" : 35 + "position" : 25 }, { - "id" : "482", + "id" : "482" + }, { + "id" : "483" + }, { + "id" : "484", "position" : 20, "vertices" : [ { "x" : 6080, @@ -9682,19 +9690,11 @@ "x" : 5550, "y" : 2610 } ] - }, { - "id" : "483" - }, { - "id" : "484", - "vertices" : [ { - "x" : 5620, - "y" : 2716 - } ] }, { "id" : "485", - "position" : 25 + "position" : 35 }, { - "id" : "493", + "id" : "494", "vertices" : [ { "x" : 2119, "y" : 2530 @@ -9706,7 +9706,7 @@ "y" : 1520 } ] }, { - "id" : "502", + "id" : "503", "position" : 45, "vertices" : [ { "x" : 2394, @@ -9717,13 +9717,19 @@ } ] }, { "id" : "510", + "vertices" : [ { + "x" : 5095, + "y" : 2276 + } ] + }, { + "id" : "511", "position" : 15, "vertices" : [ { "x" : 5090, "y" : 3531 } ] }, { - "id" : "511", + "id" : "512", "position" : 5, "vertices" : [ { "x" : 4505, @@ -9732,24 +9738,15 @@ "x" : 6360, "y" : 1606 } ] - }, { - "id" : "512", - "vertices" : [ { - "x" : 5095, - "y" : 2276 - } ] }, { "id" : "517", - "position" : 10, + "position" : 45, "vertices" : [ { - "x" : 4600, - "y" : 3896 + "x" : 4580, + "y" : 4051 }, { - "x" : 4615, - "y" : 1686 - }, { - "x" : 6305, - "y" : 1696 + "x" : 5950, + "y" : 4071 } ] }, { "id" : "518", @@ -9763,13 +9760,16 @@ } ] }, { "id" : "519", - "position" : 45, + "position" : 10, "vertices" : [ { - "x" : 4580, - "y" : 4051 + "x" : 4600, + "y" : 3896 }, { - "x" : 5950, - "y" : 4071 + "x" : 4615, + "y" : 1686 + }, { + "x" : 6305, + "y" : 1696 } ] }, { "id" : "526", @@ -9788,38 +9788,38 @@ "id" : "533", "vertices" : [ { "x" : 3670, - "y" : 3401 - }, { - "x" : 3670, - "y" : 3651 - } ] - }, { - "id" : "534", - "vertices" : [ { - "x" : 2860, "y" : 3801 }, { - "x" : 2860, + "x" : 3670, "y" : 3661 } ] }, { - "id" : "535", - "position" : 20, + "id" : "534", + "position" : 30, "vertices" : [ { - "x" : 2880, - "y" : 2350 + "x" : 3660, + "y" : 2460 }, { - "x" : 2880, - "y" : 3631 + "x" : 3660, + "y" : 3641 + } ] + }, { + "id" : "535", + "vertices" : [ { + "x" : 2870, + "y" : 4241 + }, { + "x" : 2870, + "y" : 3671 } ] }, { "id" : "536", "vertices" : [ { - "x" : 3670, - "y" : 3801 + "x" : 2860, + "y" : 3401 }, { - "x" : 3670, - "y" : 3661 + "x" : 2860, + "y" : 3651 } ] }, { "id" : "537", @@ -9834,11 +9834,11 @@ }, { "id" : "538", "vertices" : [ { - "x" : 2870, - "y" : 4241 + "x" : 2860, + "y" : 3801 }, { - "x" : 2870, - "y" : 3671 + "x" : 2860, + "y" : 3661 } ] }, { "id" : "539", @@ -9851,89 +9851,37 @@ } ] }, { "id" : "540", - "position" : 30, + "position" : 20, "vertices" : [ { - "x" : 3660, - "y" : 2460 + "x" : 2880, + "y" : 2350 }, { - "x" : 3660, - "y" : 3641 + "x" : 2880, + "y" : 3631 } ] }, { "id" : "541", "vertices" : [ { - "x" : 2860, + "x" : 3670, "y" : 3401 }, { - "x" : 2860, + "x" : 3670, "y" : 3651 } ] }, { "id" : "544", "vertices" : [ { - "x" : 3590, - "y" : 3381 + "x" : 3580, + "y" : 3821 }, { - "x" : 3590, - "y" : 3111 + "x" : 3580, + "y" : 3121 } ] }, { "id" : "545", - "vertices" : [ { - "x" : 2970, - "y" : 3821 - }, { - "x" : 2970, - "y" : 3121 - } ] + "position" : 35 }, { "id" : "546", - "position" : 30, - "vertices" : [ { - "x" : 2970, - "y" : 2310 - }, { - "x" : 2970, - "y" : 3091 - } ] - }, { - "id" : "547", - "vertices" : [ { - "x" : 3580, - "y" : 3821 - }, { - "x" : 3580, - "y" : 3121 - } ] - }, { - "id" : "548", - "vertices" : [ { - "x" : 2960, - "y" : 2780 - }, { - "x" : 2960, - "y" : 3101 - } ] - }, { - "id" : "549", - "vertices" : [ { - "x" : 2980, - "y" : 4261 - }, { - "x" : 2980, - "y" : 3131 - } ] - }, { - "id" : "550", - "vertices" : [ { - "x" : 3570, - "y" : 4261 - }, { - "x" : 3570, - "y" : 3131 - } ] - }, { - "id" : "551", "position" : 40, "vertices" : [ { "x" : 3590, @@ -9943,10 +9891,16 @@ "y" : 3101 } ] }, { - "id" : "552", - "position" : 35 + "id" : "547", + "vertices" : [ { + "x" : 2980, + "y" : 4261 + }, { + "x" : 2980, + "y" : 3131 + } ] }, { - "id" : "553", + "id" : "548", "vertices" : [ { "x" : 2960, "y" : 3381 @@ -9955,41 +9909,87 @@ "y" : 3111 } ] }, { - "id" : "556", + "id" : "549", "vertices" : [ { - "x" : 3750, - "y" : 3421 + "x" : 2960, + "y" : 2780 }, { - "x" : 3750, - "y" : 4161 + "x" : 2960, + "y" : 3101 } ] }, { - "id" : "557", + "id" : "550", "vertices" : [ { - "x" : 2770, + "x" : 2970, + "y" : 3821 + }, { + "x" : 2970, + "y" : 3121 + } ] + }, { + "id" : "551", + "vertices" : [ { + "x" : 3570, + "y" : 4261 + }, { + "x" : 3570, + "y" : 3131 + } ] + }, { + "id" : "552", + "position" : 30, + "vertices" : [ { + "x" : 2970, + "y" : 2310 + }, { + "x" : 2970, + "y" : 3091 + } ] + }, { + "id" : "553", + "vertices" : [ { + "x" : 3590, + "y" : 3381 + }, { + "x" : 3590, + "y" : 3111 + } ] + }, { + "id" : "556", + "vertices" : [ { + "x" : 3760, "y" : 3841 }, { - "x" : 2770, + "x" : 3760, "y" : 4171 } ] }, { - "id" : "558", - "position" : 20, + "id" : "557", + "position" : 25, "vertices" : [ { - "x" : 2800, - "y" : 2410 + "x" : 3740, + "y" : 2470 }, { - "x" : 2800, - "y" : 4141 + "x" : 3740, + "y" : 4151 + } ] + }, { + "id" : "558", + "vertices" : [ { + "x" : 2770, + "y" : 4221 + }, { + "x" : 2770, + "y" : 4181 } ] }, { "id" : "559", "vertices" : [ { - "x" : 3760, - "y" : 3841 + "x" : 2780, + "y" : 3421 }, { - "x" : 3760, - "y" : 4171 + "x" : 2780, + "y" : 4161 } ] }, { "id" : "560", @@ -10005,10 +10005,10 @@ "id" : "561", "vertices" : [ { "x" : 2770, - "y" : 4221 + "y" : 3841 }, { "x" : 2770, - "y" : 4181 + "y" : 4171 } ] }, { "id" : "562", @@ -10021,32 +10021,32 @@ } ] }, { "id" : "563", - "position" : 25, + "position" : 20, "vertices" : [ { - "x" : 3740, - "y" : 2470 + "x" : 2800, + "y" : 2410 }, { - "x" : 3740, - "y" : 4151 + "x" : 2800, + "y" : 4141 } ] }, { "id" : "564", "vertices" : [ { - "x" : 2780, + "x" : 3750, "y" : 3421 }, { - "x" : 2780, + "x" : 3750, "y" : 4161 } ] }, { - "id" : "569" - }, { - "id" : "570", + "id" : "569", "position" : 60, "vertices" : [ { "x" : 3289, "y" : 2740 } ] + }, { + "id" : "570" }, { "id" : "573" }, { @@ -10062,20 +10062,18 @@ }, { "id" : "575" }, { - "id" : "582", - "position" : 20, - "vertices" : [ { - "x" : 2159, - "y" : 2310 - }, { - "x" : 1239, - "y" : 2295 - }, { - "x" : 1234, - "y" : 1300 - } ] + "id" : "582" }, { "id" : "583", + "vertices" : [ { + "x" : 1069, + "y" : 3375 + }, { + "x" : 1074, + "y" : 1365 + } ] + }, { + "id" : "584", "position" : 15, "vertices" : [ { "x" : 2144, @@ -10087,26 +10085,28 @@ "x" : 1274, "y" : 1275 } ] - }, { - "id" : "584" }, { "id" : "585", - "vertices" : [ { - "x" : 1069, - "y" : 3375 - }, { - "x" : 1074, - "y" : 1365 - } ] - }, { - "id" : "588", "position" : 20, "vertices" : [ { "x" : 2159, - "y" : 2400 + "y" : 2310 }, { - "x" : 924, - "y" : 2390 + "x" : 1239, + "y" : 2295 + }, { + "x" : 1234, + "y" : 1300 + } ] + }, { + "id" : "588", + "position" : 30, + "vertices" : [ { + "x" : 870, + "y" : 1430 + }, { + "x" : 879, + "y" : 1860 } ] }, { "id" : "589", @@ -10120,13 +10120,13 @@ } ] }, { "id" : "590", - "position" : 30, + "position" : 20, "vertices" : [ { - "x" : 870, - "y" : 1430 + "x" : 2159, + "y" : 2400 }, { - "x" : 879, - "y" : 1860 + "x" : 924, + "y" : 2390 } ] }, { "id" : "593", @@ -10139,77 +10139,21 @@ "y" : 4940 } ] }, { - "id" : "596", - "position" : 25 + "id" : "596" }, { - "id" : "597" + "id" : "597", + "position" : 25 }, { "id" : "600", "vertices" : [ { - "x" : 2680, + "x" : 3830, "y" : 3861 }, { - "x" : 2680, + "x" : 3830, "y" : 5381 } ] }, { "id" : "601", - "position" : 15, - "vertices" : [ { - "x" : 2710, - "y" : 2455 - }, { - "x" : 2710, - "y" : 5351 - } ] - }, { - "id" : "602", - "vertices" : [ { - "x" : 3830, - "y" : 3861 - }, { - "x" : 3830, - "y" : 5381 - } ] - }, { - "id" : "603", - "position" : 15, - "vertices" : [ { - "x" : 2700, - "y" : 2820 - }, { - "x" : 2700, - "y" : 5361 - } ] - }, { - "id" : "604", - "vertices" : [ { - "x" : 2670, - "y" : 4281 - }, { - "x" : 2670, - "y" : 5391 - } ] - }, { - "id" : "605", - "vertices" : [ { - "x" : 3840, - "y" : 4281 - }, { - "x" : 3840, - "y" : 5391 - } ] - }, { - "id" : "606", - "vertices" : [ { - "x" : 3820, - "y" : 3441 - }, { - "x" : 3820, - "y" : 5371 - } ] - }, { - "id" : "607", "position" : 20, "vertices" : [ { "x" : 3810, @@ -10219,7 +10163,34 @@ "y" : 5361 } ] }, { - "id" : "608", + "id" : "602", + "vertices" : [ { + "x" : 2670, + "y" : 4281 + }, { + "x" : 2670, + "y" : 5391 + } ] + }, { + "id" : "603", + "vertices" : [ { + "x" : 3840, + "y" : 4281 + }, { + "x" : 3840, + "y" : 5391 + } ] + }, { + "id" : "604", + "vertices" : [ { + "x" : 3820, + "y" : 3441 + }, { + "x" : 3820, + "y" : 5371 + } ] + }, { + "id" : "605", "vertices" : [ { "x" : 2690, "y" : 3441 @@ -10227,6 +10198,35 @@ "x" : 2690, "y" : 5371 } ] + }, { + "id" : "606", + "position" : 15, + "vertices" : [ { + "x" : 2700, + "y" : 2820 + }, { + "x" : 2700, + "y" : 5361 + } ] + }, { + "id" : "607", + "vertices" : [ { + "x" : 2680, + "y" : 3861 + }, { + "x" : 2680, + "y" : 5381 + } ] + }, { + "id" : "608", + "position" : 15, + "vertices" : [ { + "x" : 2710, + "y" : 2455 + }, { + "x" : 2710, + "y" : 5351 + } ] }, { "id" : "611", "position" : 60, @@ -10245,16 +10245,6 @@ } ] }, { "id" : "614", - "position" : 55, - "vertices" : [ { - "x" : 4069, - "y" : 415 - }, { - "x" : 6159, - "y" : 400 - } ] - }, { - "id" : "615", "position" : 70, "vertices" : [ { "x" : 2999, @@ -10269,6 +10259,16 @@ "x" : 6119, "y" : 485 } ] + }, { + "id" : "615", + "position" : 55, + "vertices" : [ { + "x" : 4069, + "y" : 415 + }, { + "x" : 6159, + "y" : 400 + } ] }, { "id" : "616", "vertices" : [ {