mirror of
https://github.com/bitwarden/browser
synced 2026-02-06 11:43:51 +00:00
1539 lines
56 KiB
JSON
1539 lines
56 KiB
JSON
{
|
|
"configuration": {},
|
|
"description": "Description",
|
|
"documentation": {
|
|
"sections": [
|
|
{
|
|
"content": "## File Hierarchy\n",
|
|
"filename": "file_hierarchy.md",
|
|
"format": "Markdown",
|
|
"order": 1,
|
|
"title": ""
|
|
},
|
|
{
|
|
"content": "## Perspectives\n\n### Security\n\nHighlights models and relationships identified as a part of [threat modeling](https://www.threatmodelingmanifesto.org/).\n\nIdentified threats are expected to be itemized in the perspective description, tagged with an appropriate `Security: threat` tag, and include a `!docs` property that describes the threat and mitigations. [`-> (relationships)`](https://docs.structurizr.com/dsl/language#relationship) do not allow for a `!docs` property, so a `url` property is used instead, linking to the appropriate section of the published docs.\n\n#### Example Model or Relationship\n\n##### Example Threat\n\n- **Type**: type\n- **Priority**: TBD/Low/Medium/High/Critical\n- **Likelihood**: TBD/Low/Medium/High/Critical\n- **Impact**: TBD/Low/Medium/High/Critical\n\ndescription of the threat.\n\n###### Example Threat Mitigations\n\ndescribe the mitigations for the threat and whether or not they are complete\n\n### SRE\n\nHighlights concerns and requirements for cloud deployments.\n",
|
|
"filename": "perspectives.md",
|
|
"format": "Markdown",
|
|
"order": 2,
|
|
"title": ""
|
|
},
|
|
{
|
|
"content": "## Tags\n\n### Admin\n\n### API\n\n### Auth\n\n### Azure\n\n### Billing\n\n### Bitwarden Employee\n\n### Browser\n\n### CLI\n\n### Cloud Host Requirement\n\n### Database\n\n### Desktop\n\n### Directory\n\n### Events\n\n### External\n\n### HealthCheck\n\n### Icons\n\n### LDAP\n\n### MSP\n\n### Mobile\n\n### Queue\n\n### SCIM\n\n### Security:Privacy\n\n### Self-Hosted\n\n### Web\n",
|
|
"filename": "tags.md",
|
|
"format": "Markdown",
|
|
"order": 3,
|
|
"title": ""
|
|
}
|
|
]
|
|
},
|
|
"id": 1,
|
|
"lastModifiedDate": "2025-07-30T16:45:56Z",
|
|
"model": {
|
|
"people": [
|
|
{
|
|
"description": "An end user of the Bitwarden System",
|
|
"id": "1",
|
|
"location": "Unspecified",
|
|
"name": "Bitwarden User",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "user"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Uses",
|
|
"destinationId": "10",
|
|
"id": "58",
|
|
"sourceId": "1",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Uses",
|
|
"destinationId": "9",
|
|
"id": "59",
|
|
"linkedRelationshipId": "58",
|
|
"sourceId": "1"
|
|
},
|
|
{
|
|
"description": "Uses",
|
|
"destinationId": "11",
|
|
"id": "60",
|
|
"sourceId": "1",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Uses",
|
|
"destinationId": "12",
|
|
"id": "61",
|
|
"sourceId": "1",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Uses",
|
|
"destinationId": "13",
|
|
"id": "62",
|
|
"sourceId": "1",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Person"
|
|
},
|
|
{
|
|
"description": "Either a Bitwarden site-reliability engineer or administrator of a self-hosted instance",
|
|
"id": "2",
|
|
"location": "Unspecified",
|
|
"name": "System Admin",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "system_admin"
|
|
},
|
|
"tags": "Element,Person,Bitwarden Employee,Self-Host Admin"
|
|
},
|
|
{
|
|
"description": "A customer success engineer. Inspects bitwarden state through the admin portal and internal tools",
|
|
"group": "Bitwarden Controlled",
|
|
"id": "3",
|
|
"location": "Unspecified",
|
|
"name": "Customer Success",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "customer_success"
|
|
},
|
|
"tags": "Element,Person,Bitwarden Employee"
|
|
},
|
|
{
|
|
"description": "An administrator of an organization",
|
|
"id": "17",
|
|
"location": "Unspecified",
|
|
"name": "Organization Admin",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "admin"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Administers Organizations",
|
|
"destinationId": "10",
|
|
"id": "63",
|
|
"sourceId": "17",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Administers Organizations",
|
|
"destinationId": "9",
|
|
"id": "64",
|
|
"linkedRelationshipId": "63",
|
|
"sourceId": "17"
|
|
}
|
|
],
|
|
"tags": "Element,Person,Admin"
|
|
},
|
|
{
|
|
"description": "And employee of a managed service provider",
|
|
"id": "18",
|
|
"location": "Unspecified",
|
|
"name": "MSP",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "provider"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Administers Providers and Organizations",
|
|
"destinationId": "10",
|
|
"id": "65",
|
|
"sourceId": "18",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Administers Providers and Organizations",
|
|
"destinationId": "9",
|
|
"id": "66",
|
|
"linkedRelationshipId": "65",
|
|
"sourceId": "18"
|
|
}
|
|
],
|
|
"tags": "Element,Person,MSP"
|
|
}
|
|
],
|
|
"properties": {
|
|
"structurizr.groupSeparator": "/"
|
|
},
|
|
"softwareSystems": [
|
|
{
|
|
"containers": [
|
|
{
|
|
"components": [
|
|
{
|
|
"documentation": {},
|
|
"id": "6",
|
|
"name": "Billing",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.api.billing"
|
|
},
|
|
"tags": "Element,Component,Billing"
|
|
}
|
|
],
|
|
"documentation": {},
|
|
"id": "5",
|
|
"name": "API",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.api"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Validates JWTs with",
|
|
"destinationId": "19",
|
|
"id": "81",
|
|
"sourceId": "5",
|
|
"tags": "Relationship",
|
|
"url": "https://bitwarden.com"
|
|
}
|
|
],
|
|
"tags": "Element,Container,API"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "7",
|
|
"name": "Events",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.events"
|
|
},
|
|
"tags": "Element,Container,Events"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "8",
|
|
"name": "Notifications",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.notifications"
|
|
},
|
|
"tags": "Element,Container"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "19",
|
|
"name": "Identity",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.identity"
|
|
},
|
|
"tags": "Element,Container,Auth"
|
|
},
|
|
{
|
|
"description": "The Icons service provides favicons for websites.",
|
|
"documentation": {},
|
|
"id": "54",
|
|
"name": "Icons",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server.icons"
|
|
},
|
|
"tags": "Element,Container"
|
|
}
|
|
],
|
|
"documentation": {},
|
|
"group": "Bitwarden Controlled",
|
|
"id": "4",
|
|
"location": "Unspecified",
|
|
"name": "Bitwarden Server",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "server"
|
|
},
|
|
"tags": "Element,Software System"
|
|
},
|
|
{
|
|
"containers": [
|
|
{
|
|
"documentation": {},
|
|
"id": "10",
|
|
"name": "Web Application",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.web"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "5",
|
|
"id": "67",
|
|
"sourceId": "10",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "4",
|
|
"id": "68",
|
|
"linkedRelationshipId": "67",
|
|
"sourceId": "10"
|
|
},
|
|
{
|
|
"description": "Authenticates with",
|
|
"destinationId": "19",
|
|
"id": "76",
|
|
"sourceId": "10",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Container,Web"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "11",
|
|
"name": "Browser Extension",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.browser_extension"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Connects to IPC to request biometric authentication",
|
|
"destinationId": "32",
|
|
"id": "40",
|
|
"sourceId": "11",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Connects to IPC to request biometric authentication",
|
|
"destinationId": "13",
|
|
"id": "41",
|
|
"linkedRelationshipId": "40",
|
|
"sourceId": "11"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "5",
|
|
"id": "70",
|
|
"sourceId": "11",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "4",
|
|
"id": "71",
|
|
"linkedRelationshipId": "70",
|
|
"sourceId": "11"
|
|
},
|
|
{
|
|
"description": "Authenticates With",
|
|
"destinationId": "19",
|
|
"id": "78",
|
|
"sourceId": "11",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Container,Browser"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "12",
|
|
"name": "CLI",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.cli"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "5",
|
|
"id": "72",
|
|
"sourceId": "12",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "4",
|
|
"id": "73",
|
|
"linkedRelationshipId": "72",
|
|
"sourceId": "12"
|
|
},
|
|
{
|
|
"description": "Authenticates With",
|
|
"destinationId": "19",
|
|
"id": "79",
|
|
"sourceId": "12",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Container,CLI"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"description": "Service that handles encryption and decryption of sensitive data in the Bitwarden desktop application.",
|
|
"documentation": {},
|
|
"id": "22",
|
|
"name": "Encrypt Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.encrypt_service"
|
|
},
|
|
"tags": "Element,Component"
|
|
},
|
|
{
|
|
"description": "Service that handles biometric authentication for the Bitwarden desktop application.",
|
|
"documentation": {},
|
|
"id": "23",
|
|
"name": "Biometric Renderer Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.biometric_renderer_service"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Requests biometric authentication",
|
|
"destinationId": "33",
|
|
"id": "34",
|
|
"sourceId": "23",
|
|
"tags": "Relationship,MacOS,Windows,Linux"
|
|
}
|
|
],
|
|
"tags": "Element,Component",
|
|
"technology": "Electron"
|
|
},
|
|
{
|
|
"description": "Main service for biometric authentication in the Bitwarden desktop application.",
|
|
"documentation": {},
|
|
"id": "24",
|
|
"name": "Biometric Main Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.biometric_main_service"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Handles macOS biometric unlock requests",
|
|
"destinationId": "25",
|
|
"id": "28",
|
|
"sourceId": "24",
|
|
"tags": "Relationship,MacOS"
|
|
},
|
|
{
|
|
"description": "Handles Windows biometric unlock requests",
|
|
"destinationId": "26",
|
|
"id": "29",
|
|
"sourceId": "24",
|
|
"tags": "Relationship,Windows"
|
|
},
|
|
{
|
|
"description": "Handles Linux biometric unlock requests",
|
|
"destinationId": "27",
|
|
"id": "30",
|
|
"sourceId": "24",
|
|
"tags": "Relationship,Linux"
|
|
}
|
|
],
|
|
"tags": "Element,Component",
|
|
"technology": "Electron"
|
|
},
|
|
{
|
|
"description": "Service that handles MacOS-specific biometric authentication.",
|
|
"documentation": {},
|
|
"id": "25",
|
|
"name": "MacOS Biometric Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.macos_biometric_service"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Requests user verification for biometric authentication",
|
|
"destinationId": "39",
|
|
"id": "46",
|
|
"sourceId": "25",
|
|
"tags": "Relationship,MacOS",
|
|
"technology": "Electron Integration with TouchId"
|
|
},
|
|
{
|
|
"description": "Saves the user key directly",
|
|
"destinationId": "31",
|
|
"id": "51",
|
|
"sourceId": "25",
|
|
"tags": "Relationship,MacOS"
|
|
}
|
|
],
|
|
"tags": "Element,Component,MacOS",
|
|
"technology": "Electron"
|
|
},
|
|
{
|
|
"description": "Service that handles Windows-specific biometric authentication.",
|
|
"documentation": {},
|
|
"id": "26",
|
|
"name": "Windows Biometric Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.windows_biometric_service"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Encrypts/Decrypts user key with client key half",
|
|
"destinationId": "22",
|
|
"id": "37",
|
|
"sourceId": "26",
|
|
"tags": "Relationship,Windows"
|
|
},
|
|
{
|
|
"description": "Requests user verification for biometric authentication",
|
|
"destinationId": "39",
|
|
"id": "50",
|
|
"sourceId": "26",
|
|
"tags": "Relationship,Windows",
|
|
"technology": "Windows Hello"
|
|
},
|
|
{
|
|
"description": "Saves the user key encrypted with the client key half",
|
|
"destinationId": "31",
|
|
"id": "53",
|
|
"sourceId": "26",
|
|
"tags": "Relationship,Windows",
|
|
"technology": "Windows Hello"
|
|
}
|
|
],
|
|
"tags": "Element,Component,Windows",
|
|
"technology": "Electron"
|
|
},
|
|
{
|
|
"description": "Service that handles Linux-specific biometric authentication.",
|
|
"documentation": {},
|
|
"id": "27",
|
|
"name": "Linux Biometric Service",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.linux_biometric_service"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Encrypts/Decrypts user key with client key half",
|
|
"destinationId": "22",
|
|
"id": "36",
|
|
"sourceId": "27",
|
|
"tags": "Relationship,Linux"
|
|
},
|
|
{
|
|
"description": "Requests user verification for biometric authentication",
|
|
"destinationId": "39",
|
|
"id": "49",
|
|
"sourceId": "27",
|
|
"tags": "Relationship,Linux",
|
|
"technology": "Custom Polkit policy"
|
|
},
|
|
{
|
|
"description": "Saves the user key encrypted with the client key half",
|
|
"destinationId": "31",
|
|
"id": "52",
|
|
"sourceId": "27",
|
|
"tags": "Relationship,Linux",
|
|
"technology": "Custom Polkit policy"
|
|
}
|
|
],
|
|
"tags": "Element,Component,Linux",
|
|
"technology": "Electron"
|
|
},
|
|
{
|
|
"description": "CRUD operations on keys-values stored by the OS.",
|
|
"documentation": {},
|
|
"id": "31",
|
|
"name": "OS Password Management Native Module",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.password"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "CRUD operations on keys stored in the OS secure storage",
|
|
"destinationId": "38",
|
|
"id": "43",
|
|
"sourceId": "31",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Component",
|
|
"technology": "rust module"
|
|
},
|
|
{
|
|
"description": "External IPC for communication with the desktop application.",
|
|
"documentation": {},
|
|
"group": "ipc",
|
|
"id": "32",
|
|
"name": "IPC",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.ipc_external"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Relays biometric authentication requests to",
|
|
"destinationId": "23",
|
|
"id": "42",
|
|
"sourceId": "32",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Component",
|
|
"technology": "Sockets"
|
|
},
|
|
{
|
|
"description": "Communication between renderer and main electron processes.",
|
|
"documentation": {},
|
|
"group": "ipc",
|
|
"id": "33",
|
|
"name": "Electron IPC",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop.electron_ipc"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Relays biometric authentication requests to",
|
|
"destinationId": "24",
|
|
"id": "35",
|
|
"sourceId": "33",
|
|
"tags": "Relationship,MacOS,Windows,Linux"
|
|
}
|
|
],
|
|
"tags": "Element,Component",
|
|
"technology": "Electron"
|
|
}
|
|
],
|
|
"documentation": {},
|
|
"id": "13",
|
|
"name": "Desktop Application",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients.desktop"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "CRUD operations on keys stored in the OS secure storage",
|
|
"destinationId": "38",
|
|
"id": "44",
|
|
"linkedRelationshipId": "43",
|
|
"sourceId": "13"
|
|
},
|
|
{
|
|
"description": "Requests user verification for biometric authentication",
|
|
"destinationId": "39",
|
|
"id": "47",
|
|
"linkedRelationshipId": "46",
|
|
"sourceId": "13",
|
|
"technology": "Electron Integration with TouchId"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "5",
|
|
"id": "74",
|
|
"sourceId": "13",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "4",
|
|
"id": "75",
|
|
"linkedRelationshipId": "74",
|
|
"sourceId": "13"
|
|
},
|
|
{
|
|
"description": "Authenticates With",
|
|
"destinationId": "19",
|
|
"id": "80",
|
|
"sourceId": "13",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Container,Desktop"
|
|
}
|
|
],
|
|
"documentation": {},
|
|
"group": "Bitwarden Controlled",
|
|
"id": "9",
|
|
"location": "Unspecified",
|
|
"name": "Clients",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "clients"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "CRUD operations on keys stored in the OS secure storage",
|
|
"destinationId": "38",
|
|
"id": "45",
|
|
"linkedRelationshipId": "43",
|
|
"sourceId": "9"
|
|
},
|
|
{
|
|
"description": "Requests user verification for biometric authentication",
|
|
"destinationId": "39",
|
|
"id": "48",
|
|
"linkedRelationshipId": "46",
|
|
"sourceId": "9",
|
|
"technology": "Electron Integration with TouchId"
|
|
},
|
|
{
|
|
"description": "Requests icons for cleartext urls from",
|
|
"destinationId": "54",
|
|
"id": "55",
|
|
"sourceId": "9",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Requests icons for cleartext urls from",
|
|
"destinationId": "4",
|
|
"id": "56",
|
|
"linkedRelationshipId": "55",
|
|
"sourceId": "9"
|
|
},
|
|
{
|
|
"description": "Makes requests to",
|
|
"destinationId": "5",
|
|
"id": "69",
|
|
"linkedRelationshipId": "67",
|
|
"sourceId": "9"
|
|
},
|
|
{
|
|
"description": "Authenticates with",
|
|
"destinationId": "19",
|
|
"id": "77",
|
|
"linkedRelationshipId": "76",
|
|
"sourceId": "9"
|
|
},
|
|
{
|
|
"description": "Posts local usage events to",
|
|
"destinationId": "7",
|
|
"id": "82",
|
|
"sourceId": "9",
|
|
"tags": "Relationship"
|
|
}
|
|
],
|
|
"tags": "Element,Software System"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"group": "Bitwarden Controlled",
|
|
"id": "14",
|
|
"location": "Unspecified",
|
|
"name": "Key Connector",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "key_connector"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Validates JWTs with",
|
|
"destinationId": "19",
|
|
"id": "85",
|
|
"sourceId": "14",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Validates JWTs with",
|
|
"destinationId": "4",
|
|
"id": "86",
|
|
"linkedRelationshipId": "85",
|
|
"sourceId": "14"
|
|
}
|
|
],
|
|
"tags": "Element,Software System"
|
|
},
|
|
{
|
|
"description": "Self-hosted instances of Bitwarden servers",
|
|
"documentation": {},
|
|
"id": "15",
|
|
"location": "Unspecified",
|
|
"name": "Self-Hosted Instances",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "self_hosted_instances"
|
|
},
|
|
"relationships": [
|
|
{
|
|
"description": "Sends push notification proxy requests to",
|
|
"destinationId": "8",
|
|
"id": "83",
|
|
"sourceId": "15",
|
|
"tags": "Relationship"
|
|
},
|
|
{
|
|
"description": "Sends push notification proxy requests to",
|
|
"destinationId": "4",
|
|
"id": "84",
|
|
"linkedRelationshipId": "83",
|
|
"sourceId": "15"
|
|
}
|
|
],
|
|
"tags": "Element,Software System,Self-Hosted,External"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "16",
|
|
"location": "Unspecified",
|
|
"name": "External Websites",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "external_websites"
|
|
},
|
|
"tags": "Element,Software System,External,Icons"
|
|
},
|
|
{
|
|
"description": "Handles credit cards and subscriptions.",
|
|
"documentation": {},
|
|
"group": "Payment Systems",
|
|
"id": "20",
|
|
"location": "Unspecified",
|
|
"name": "Stripe",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "stripe"
|
|
},
|
|
"tags": "Element,Software System,External,Billing"
|
|
},
|
|
{
|
|
"description": "Handles PayPal and cryptocurrency.",
|
|
"documentation": {},
|
|
"group": "Payment Systems",
|
|
"id": "21",
|
|
"location": "Unspecified",
|
|
"name": "Braintree",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "braintree"
|
|
},
|
|
"tags": "Element,Software System,External,Billing"
|
|
},
|
|
{
|
|
"description": "The operating system's secure storage for sensitive data, such as Windows Credential Locker or macOS Keychain.",
|
|
"documentation": {},
|
|
"id": "38",
|
|
"location": "Unspecified",
|
|
"name": "OS Secure Storage",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "os_secure_storage"
|
|
},
|
|
"tags": "Element,Software System,External"
|
|
},
|
|
{
|
|
"description": "The operating system's user verification system, such as Windows Hello or macOS Touch ID.",
|
|
"documentation": {},
|
|
"id": "39",
|
|
"location": "Unspecified",
|
|
"name": "OS User Verification",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "os_user_verification"
|
|
},
|
|
"tags": "Element,Software System,External"
|
|
},
|
|
{
|
|
"documentation": {},
|
|
"id": "57",
|
|
"location": "Unspecified",
|
|
"name": "DNS",
|
|
"properties": {
|
|
"structurizr.dsl.identifier": "dns"
|
|
},
|
|
"tags": "Element,Software System,External,Icons"
|
|
}
|
|
]
|
|
},
|
|
"name": "Bitwarden Clients System",
|
|
"properties": {
|
|
"structurizr.dsl": "d29ya3NwYWNlICJCaXR3YXJkZW4gQ2xpZW50cyBTeXN0ZW0iIHsKCiAgIWlkZW50aWZpZXJzIGhpZXJhcmNoaWNhbAoKICAhZG9jcyAidXNhZ2VfZG9jcyIKICBtb2RlbCB7CiAgICBwcm9wZXJ0aWVzIHsKICAgICAgInN0cnVjdHVyaXpyLmdyb3VwU2VwYXJhdG9yIiAiLyIKICAgIH0KCiAgICAjIEluY2x1ZGUgc2hhcmVkIGxldmVsIG1vZGVscwogICAgIyBQZXJzb24gdHlwZXMKICAgIHVzZXIgPSBwZXJzb24gIkJpdHdhcmRlbiBVc2VyIiAiQW4gZW5kIHVzZXIgb2YgdGhlIEJpdHdhcmRlbiBTeXN0ZW0iCiAgICBzeXN0ZW1fYWRtaW4gPSBwZXJzb24gIlN5c3RlbSBBZG1pbiIgIkVpdGhlciBhIEJpdHdhcmRlbiBzaXRlLXJlbGlhYmlsaXR5IGVuZ2luZWVyIG9yIGFkbWluaXN0cmF0b3Igb2YgYSBzZWxmLWhvc3RlZCBpbnN0YW5jZSIgewogICAgICB0YWdzICJCaXR3YXJkZW4gRW1wbG95ZWUiICJTZWxmLUhvc3QgQWRtaW4iCiAgICB9CiAgICAKICAgIAogICAgYndfY29udHJvbGxlZCA9IGdyb3VwICJCaXR3YXJkZW4gQ29udHJvbGxlZCIgewogICAgICAjIEJpdHdhcmRlbiBzdGFmZgogICAgICBjdXN0b21lcl9zdWNjZXNzID0gcGVyc29uICJDdXN0b21lciBTdWNjZXNzIiAiQSBjdXN0b21lciBzdWNjZXNzIGVuZ2luZWVyLiBJbnNwZWN0cyBiaXR3YXJkZW4gc3RhdGUgdGhyb3VnaCB0aGUgYWRtaW4gcG9ydGFsIGFuZCBpbnRlcm5hbCB0b29scyIgewogICAgICAgIHRhZ3MgIkJpdHdhcmRlbiBFbXBsb3llZSIKICAgICAgfQogICAgICAKICAgICAgIyBSb290IHN5c3RlbXMKICAgICAgc2VydmVyID0gc29mdHdhcmVTeXN0ZW0gIkJpdHdhcmRlbiBTZXJ2ZXIiIHsKICAgICAgICBhcGkgPSBjb250YWluZXIgIkFQSSIgewogICAgICAgICAgYmlsbGluZyA9IGNvbXBvbmVudCAiQmlsbGluZyIgewogICAgICAgICAgICB0YWdzICJCaWxsaW5nIgogICAgICAgICAgfQogICAgICAgICAgdGFncyAiQVBJIgogICAgICAgIH0KICAgICAgICBldmVudHMgPSBjb250YWluZXIgIkV2ZW50cyIgewogICAgICAgICAgdGFncyAiRXZlbnRzIgogICAgICAgIH0KICAgICAgICBub3RpZmljYXRpb25zID0gY29udGFpbmVyICJOb3RpZmljYXRpb25zIgogICAgICB9CiAgICAgIGNsaWVudHMgPSBzb2Z0d2FyZVN5c3RlbSAiQ2xpZW50cyIgewogICAgICAgIHdlYiA9IGNvbnRhaW5lciAiV2ViIEFwcGxpY2F0aW9uIiB7CiAgICAgICAgICB0YWdzICJXZWIiCiAgICAgICAgfQogICAgICAgIGJyb3dzZXJfZXh0ZW5zaW9uID0gY29udGFpbmVyICJCcm93c2VyIEV4dGVuc2lvbiIgewogICAgICAgICAgdGFncyAiQnJvd3NlciIKICAgICAgICB9CiAgICAgICAgY2xpID0gY29udGFpbmVyICJDTEkiIHsKICAgICAgICAgIHRhZ3MgIkNMSSIKICAgICAgICB9CiAgICAgICAgZGVza3RvcCA9IGNvbnRhaW5lciAiRGVza3RvcCBBcHBsaWNhdGlvbiIgewogICAgICAgICAgdGFncyAiRGVza3RvcCIKICAgICAgICB9CiAgICAgIH0KICAgICAga2V5X2Nvbm5lY3RvciA9IHNvZnR3YXJlU3lzdGVtICJLZXkgQ29ubmVjdG9yIiAKICAgIH0KICAgIAogICAgc2VsZl9ob3N0ZWRfaW5zdGFuY2VzID0gc29mdHdhcmVTeXN0ZW0gIlNlbGYtSG9zdGVkIEluc3RhbmNlcyIgewogICAgICB0YWdzICJTZWxmLUhvc3RlZCIKICAgICAgdGFncyAiRXh0ZXJuYWwiCiAgICAgIGRlc2NyaXB0aW9uICJTZWxmLWhvc3RlZCBpbnN0YW5jZXMgb2YgQml0d2FyZGVuIHNlcnZlcnMiCiAgICB9CiAgICAKICAgIGV4dGVybmFsX3dlYnNpdGVzID0gc29mdHdhcmVTeXN0ZW0gIkV4dGVybmFsIFdlYnNpdGVzIiB7CiAgICAgIHRhZ3MgIkV4dGVybmFsIgogICAgICB0YWdzICJJY29ucyIKICAgIH0KCiAgICAjIEluY2x1ZGUgdGVhbSBsZXZlbCBtb2RlbHMKICAgIGFkbWluID0gcGVyc29uICJPcmdhbml6YXRpb24gQWRtaW4iICJBbiBhZG1pbmlzdHJhdG9yIG9mIGFuIG9yZ2FuaXphdGlvbiIgewogICAgICB0YWdzICJBZG1pbiIKICAgIH0KICAgIHByb3ZpZGVyID0gcGVyc29uICJNU1AiICJBbmQgZW1wbG95ZWUgb2YgYSBtYW5hZ2VkIHNlcnZpY2UgcHJvdmlkZXIiIHsKICAgICAgdGFncyAiTVNQIgogICAgfQogICAgCiAgICAhZWxlbWVudCBzZXJ2ZXIgewogICAgICBpZGVudGl0eSA9IGNvbnRhaW5lciAiSWRlbnRpdHkiIHsKICAgICAgICB0YWdzICJBdXRoIgogICAgICB9CiAgICB9CiAgICAjIEV4dGVybmFsIHZlbmRvcnMKICAgIGdyb3VwICJQYXltZW50IFN5c3RlbXMiIHsKICAgICAgc3RyaXBlID0gc29mdHdhcmVTeXN0ZW0gIlN0cmlwZSIgewogICAgICAgIHRhZ3MgIkV4dGVybmFsIgogICAgICAgIHRhZ3MgIkJpbGxpbmciCiAgICAgICAgZGVzY3JpcHRpb24gIkhhbmRsZXMgY3JlZGl0IGNhcmRzIGFuZCBzdWJzY3JpcHRpb25zLiIKICAgICAgfQogICAgICBicmFpbnRyZWUgPSBzb2Z0d2FyZVN5c3RlbSAiQnJhaW50cmVlIiB7CiAgICAgICAgdGFncyAiRXh0ZXJuYWwiCiAgICAgICAgdGFncyAiQmlsbGluZyIKICAgICAgICBkZXNjcmlwdGlvbiAiSGFuZGxlcyBQYXlQYWwgYW5kIGNyeXB0b2N1cnJlbmN5LiIKICAgICAgfQogICAgfQogICAgCiAgICAhZWxlbWVudCBjbGllbnRzLmRlc2t0b3AgewogICAgICBlbmNyeXB0X3NlcnZpY2UgPSBjb21wb25lbnQgIkVuY3J5cHQgU2VydmljZSIgewogICAgICAgIGRlc2NyaXB0aW9uICJTZXJ2aWNlIHRoYXQgaGFuZGxlcyBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9mIHNlbnNpdGl2ZSBkYXRhIGluIHRoZSBCaXR3YXJkZW4gZGVza3RvcCBhcHBsaWNhdGlvbi4iCiAgICAgIH0KICAgIAogICAgICBiaW9tZXRyaWNfcmVuZGVyZXJfc2VydmljZSA9IGNvbXBvbmVudCAiQmlvbWV0cmljIFJlbmRlcmVyIFNlcnZpY2UiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiU2VydmljZSB0aGF0IGhhbmRsZXMgYmlvbWV0cmljIGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgQml0d2FyZGVuIGRlc2t0b3AgYXBwbGljYXRpb24uIgogICAgICAgIHRlY2hub2xvZ3kgIkVsZWN0cm9uIgogICAgICB9CiAgICAKICAgICAgYmlvbWV0cmljX21haW5fc2VydmljZSA9IGNvbXBvbmVudCAiQmlvbWV0cmljIE1haW4gU2VydmljZSIgewogICAgICAgIGRlc2NyaXB0aW9uICJNYWluIHNlcnZpY2UgZm9yIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbiBpbiB0aGUgQml0d2FyZGVuIGRlc2t0b3AgYXBwbGljYXRpb24uIgogICAgICAgIHRlY2hub2xvZ3kgIkVsZWN0cm9uIgogICAgICB9CiAgICAKICAgICAgbWFjb3NfYmlvbWV0cmljX3NlcnZpY2UgPSBjb21wb25lbnQgIk1hY09TIEJpb21ldHJpYyBTZXJ2aWNlIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlNlcnZpY2UgdGhhdCBoYW5kbGVzIE1hY09TLXNwZWNpZmljIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbi4iCiAgICAgICAgdGFncyAiTWFjT1MiCiAgICAgICAgdGVjaG5vbG9neSAiRWxlY3Ryb24iCiAgICAgIH0KICAgIAogICAgICB3aW5kb3dzX2Jpb21ldHJpY19zZXJ2aWNlID0gY29tcG9uZW50ICJXaW5kb3dzIEJpb21ldHJpYyBTZXJ2aWNlIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlNlcnZpY2UgdGhhdCBoYW5kbGVzIFdpbmRvd3Mtc3BlY2lmaWMgYmlvbWV0cmljIGF1dGhlbnRpY2F0aW9uLiIKICAgICAgICB0YWdzICJXaW5kb3dzIgogICAgICAgIHRlY2hub2xvZ3kgIkVsZWN0cm9uIgogICAgICB9CiAgICAKICAgICAgbGludXhfYmlvbWV0cmljX3NlcnZpY2UgPSBjb21wb25lbnQgIkxpbnV4IEJpb21ldHJpYyBTZXJ2aWNlIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlNlcnZpY2UgdGhhdCBoYW5kbGVzIExpbnV4LXNwZWNpZmljIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbi4iCiAgICAgICAgdGFncyAiTGludXgiCiAgICAgICAgdGVjaG5vbG9neSAiRWxlY3Ryb24iCiAgICAgIH0KICAgIAogICAgCiAgICAgIGJpb21ldHJpY19tYWluX3NlcnZpY2UgLT4gbWFjb3NfYmlvbWV0cmljX3NlcnZpY2UgIkhhbmRsZXMgbWFjT1MgYmlvbWV0cmljIHVubG9jayByZXF1ZXN0cyIgewogICAgICAgIHRhZ3MgIk1hY09TIgogICAgICB9CiAgICAKICAgICAgYmlvbWV0cmljX21haW5fc2VydmljZSAtPiB3aW5kb3dzX2Jpb21ldHJpY19zZXJ2aWNlICJIYW5kbGVzIFdpbmRvd3MgYmlvbWV0cmljIHVubG9jayByZXF1ZXN0cyIgewogICAgICAgIHRhZ3MgIldpbmRvd3MiCiAgICAgIH0KICAgIAogICAgICBiaW9tZXRyaWNfbWFpbl9zZXJ2aWNlIC0+IGxpbnV4X2Jpb21ldHJpY19zZXJ2aWNlICJIYW5kbGVzIExpbnV4IGJpb21ldHJpYyB1bmxvY2sgcmVxdWVzdHMiIHsKICAgICAgICB0YWdzICJMaW51eCIKICAgICAgfQogICAgICAKICAgICAgcGFzc3dvcmQgPSBjb21wb25lbnQgIk9TIFBhc3N3b3JkIE1hbmFnZW1lbnQgTmF0aXZlIE1vZHVsZSIgewogICAgICAgIGRlc2NyaXB0aW9uICJDUlVEIG9wZXJhdGlvbnMgb24ga2V5cy12YWx1ZXMgc3RvcmVkIGJ5IHRoZSBPUy4iCiAgICAgICAgdGVjaG5vbG9neSAicnVzdCBtb2R1bGUiCiAgICAgIH0KICAgIAogICAgICBncm91cCBpcGMgewogICAgICAgIGlwY19leHRlcm5hbCA9IGNvbXBvbmVudCAiSVBDIiB7CiAgICAgICAgICBkZXNjcmlwdGlvbiAiRXh0ZXJuYWwgSVBDIGZvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGRlc2t0b3AgYXBwbGljYXRpb24uIgogICAgICAgICAgdGVjaG5vbG9neSAiU29ja2V0cyIKICAgICAgICB9CiAgICAKICAgICAgICBlbGVjdHJvbl9pcGMgPSBjb21wb25lbnQgIkVsZWN0cm9uIElQQyIgewogICAgICAgICAgZGVzY3JpcHRpb24gIkNvbW11bmljYXRpb24gYmV0d2VlbiByZW5kZXJlciBhbmQgbWFpbiBlbGVjdHJvbiBwcm9jZXNzZXMuIgogICAgICAgICAgdGVjaG5vbG9neSAiRWxlY3Ryb24iCiAgICAgICAgfQogICAgICB9CiAgICAKICAgICAgYmlvbWV0cmljX3JlbmRlcmVyX3NlcnZpY2UgLT4gZWxlY3Ryb25faXBjICJSZXF1ZXN0cyBiaW9tZXRyaWMgYXV0aGVudGljYXRpb24iIHsKICAgICAgICB0YWdzICJNYWNPUyIsICJXaW5kb3dzIiwgIkxpbnV4IgogICAgICB9CiAgICAKICAgICAgZWxlY3Ryb25faXBjIC0+IGJpb21ldHJpY19tYWluX3NlcnZpY2UgIlJlbGF5cyBiaW9tZXRyaWMgYXV0aGVudGljYXRpb24gcmVxdWVzdHMgdG8iIHsKICAgICAgICB0YWdzICJNYWNPUyIsICJXaW5kb3dzIiwgIkxpbnV4IgogICAgICB9CiAgICAKICAgICAgbGludXhfYmlvbWV0cmljX3NlcnZpY2UgLT4gZW5jcnlwdF9zZXJ2aWNlICJFbmNyeXB0cy9EZWNyeXB0cyB1c2VyIGtleSB3aXRoIGNsaWVudCBrZXkgaGFsZiIgewogICAgICAgIHRhZ3MgIkxpbnV4IgogICAgICB9CiAgICAKICAgICAgd2luZG93c19iaW9tZXRyaWNfc2VydmljZSAtPiBlbmNyeXB0X3NlcnZpY2UgIkVuY3J5cHRzL0RlY3J5cHRzIHVzZXIga2V5IHdpdGggY2xpZW50IGtleSBoYWxmIiB7CiAgICAgICAgdGFncyAiV2luZG93cyIKICAgICAgfQogICAgfQogICAgCiAgICBvc19zZWN1cmVfc3RvcmFnZSA9IHNvZnR3YXJlU3lzdGVtICJPUyBTZWN1cmUgU3RvcmFnZSIgewogICAgICB0YWdzICJFeHRlcm5hbCIKICAgICAgZGVzY3JpcHRpb24gIlRoZSBvcGVyYXRpbmcgc3lzdGVtJ3Mgc2VjdXJlIHN0b3JhZ2UgZm9yIHNlbnNpdGl2ZSBkYXRhLCBzdWNoIGFzIFdpbmRvd3MgQ3JlZGVudGlhbCBMb2NrZXIgb3IgbWFjT1MgS2V5Y2hhaW4uIgogICAgfQogICAgCiAgICAvLyB3aW5kb3dzX2hlbGxvID0gc29mdHdhcmVTeXN0ZW0gIldpbmRvd3MgSGVsbG8iIHsKICAgIC8vICAgdGFncyAiRXh0ZXJuYWwiICJ3aW5kb3dzIgogICAgLy8gICBkZXNjcmlwdGlvbiAiV2luZG93cyBIZWxsbyBpcyBhIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbiBmZWF0dXJlIGluIFdpbmRvd3MgMTAgYW5kIGxhdGVyIHRoYXQgYWxsb3dzIHVzZXJzIHRvIGxvZyBpbiB1c2luZyBmYWNpYWwgcmVjb2duaXRpb24sIGZpbmdlcnByaW50IHNjYW5uaW5nLCBvciBhIFBJTi4iCiAgICAvLyB9CiAgICAKICAgIC8vIG1hY29zX3RvdWNoX2lkID0gc29mdHdhcmVTeXN0ZW0gIm1hY09TIFRvdWNoIElEIiB7CiAgICAvLyAgIHRhZ3MgIkV4dGVybmFsIiAibWFjb3MiCiAgICAvLyAgIGRlc2NyaXB0aW9uICJUb3VjaCBJRCBpcyBhIGZpbmdlcnByaW50IHJlY29nbml0aW9uIGZlYXR1cmUgb24gQXBwbGUgZGV2aWNlcyB0aGF0IGFsbG93cyB1c2VycyB0byB1bmxvY2sgdGhlaXIgZGV2aWNlcyBhbmQgbWFrZSBwdXJjaGFzZXMgdXNpbmcgdGhlaXIgZmluZ2VycHJpbnQuIgogICAgLy8gfQogICAgCiAgICAvLyBsaW51eF9wb2xraXQgPSBzb2Z0d2FyZVN5c3RlbSAiTGludXggUG9sa2l0IiB7CiAgICAvLyAgIHRhZ3MgIkV4dGVybmFsIiAibGludXgiCiAgICAvLyAgIGRlc2NyaXB0aW9uICJQb2xraXQgaXMgYSBzeXN0ZW0gc2VydmljZSB0aGF0IGFsbG93cyBub24tcHJpdmlsZWdlZCBwcm9jZXNzZXMgdG8gY29tbXVuaWNhdGUgd2l0aCBwcml2aWxlZ2VkIHByb2Nlc3NlcyBpbiBMaW51eCwgb2Z0ZW4gdXNlZCBmb3IgdXNlciBhdXRoZW50aWNhdGlvbi4iCiAgICAvLyB9CiAgICAKICAgIG9zX3VzZXJfdmVyaWZpY2F0aW9uID0gc29mdHdhcmVTeXN0ZW0gIk9TIFVzZXIgVmVyaWZpY2F0aW9uIiB7CiAgICAgIHRhZ3MgIkV4dGVybmFsIgogICAgICBkZXNjcmlwdGlvbiAiVGhlIG9wZXJhdGluZyBzeXN0ZW0ncyB1c2VyIHZlcmlmaWNhdGlvbiBzeXN0ZW0sIHN1Y2ggYXMgV2luZG93cyBIZWxsbyBvciBtYWNPUyBUb3VjaCBJRC4iCiAgICB9CiAgICAKICAgIAogICAgY2xpZW50cy5icm93c2VyX2V4dGVuc2lvbiAtPiBjbGllbnRzLmRlc2t0b3AuaXBjX2V4dGVybmFsICJDb25uZWN0cyB0byBJUEMgdG8gcmVxdWVzdCBiaW9tZXRyaWMgYXV0aGVudGljYXRpb24iIAogICAgCiAgICBjbGllbnRzLmRlc2t0b3AuaXBjX2V4dGVybmFsIC0+IGNsaWVudHMuZGVza3RvcC5iaW9tZXRyaWNfcmVuZGVyZXJfc2VydmljZSAiUmVsYXlzIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cyB0byIKICAgIAogICAgY2xpZW50cy5kZXNrdG9wLnBhc3N3b3JkIC0+IG9zX3NlY3VyZV9zdG9yYWdlICJDUlVEIG9wZXJhdGlvbnMgb24ga2V5cyBzdG9yZWQgaW4gdGhlIE9TIHNlY3VyZSBzdG9yYWdlIgogICAgCiAgICBjbGllbnRzLmRlc2t0b3AubWFjb3NfYmlvbWV0cmljX3NlcnZpY2UgLT4gb3NfdXNlcl92ZXJpZmljYXRpb24gIlJlcXVlc3RzIHVzZXIgdmVyaWZpY2F0aW9uIGZvciBiaW9tZXRyaWMgYXV0aGVudGljYXRpb24iICJFbGVjdHJvbiBJbnRlZ3JhdGlvbiB3aXRoIFRvdWNoSWQiIHsKICAgICAgdGFncyAiTWFjT1MiCiAgICB9CiAgICBjbGllbnRzLmRlc2t0b3AubGludXhfYmlvbWV0cmljX3NlcnZpY2UgLT4gb3NfdXNlcl92ZXJpZmljYXRpb24gIlJlcXVlc3RzIHVzZXIgdmVyaWZpY2F0aW9uIGZvciBiaW9tZXRyaWMgYXV0aGVudGljYXRpb24iICJDdXN0b20gUG9sa2l0IHBvbGljeSIgewogICAgICB0YWdzICJMaW51eCIKICAgIH0KICAgIGNsaWVudHMuZGVza3RvcC53aW5kb3dzX2Jpb21ldHJpY19zZXJ2aWNlIC0+IG9zX3VzZXJfdmVyaWZpY2F0aW9uICJSZXF1ZXN0cyB1c2VyIHZlcmlmaWNhdGlvbiBmb3IgYmlvbWV0cmljIGF1dGhlbnRpY2F0aW9uIiAiV2luZG93cyBIZWxsbyIgewogICAgICB0YWdzICJXaW5kb3dzIgogICAgfQogICAgCiAgICBjbGllbnRzLmRlc2t0b3AubWFjb3NfYmlvbWV0cmljX3NlcnZpY2UgLT4gY2xpZW50cy5kZXNrdG9wLnBhc3N3b3JkICJTYXZlcyB0aGUgdXNlciBrZXkgZGlyZWN0bHkiICIiIHsKICAgICAgdGFncyAiTWFjT1MiCiAgICB9CiAgICBjbGllbnRzLmRlc2t0b3AubGludXhfYmlvbWV0cmljX3NlcnZpY2UgLT4gY2xpZW50cy5kZXNrdG9wLnBhc3N3b3JkICJTYXZlcyB0aGUgdXNlciBrZXkgZW5jcnlwdGVkIHdpdGggdGhlIGNsaWVudCBrZXkgaGFsZiIgIkN1c3RvbSBQb2xraXQgcG9saWN5IiB7CiAgICAgIHRhZ3MgIkxpbnV4IgogICAgfQogICAgY2xpZW50cy5kZXNrdG9wLndpbmRvd3NfYmlvbWV0cmljX3NlcnZpY2UgLT4gY2xpZW50cy5kZXNrdG9wLnBhc3N3b3JkICJTYXZlcyB0aGUgdXNlciBrZXkgZW5jcnlwdGVkIHdpdGggdGhlIGNsaWVudCBrZXkgaGFsZiIgIldpbmRvd3MgSGVsbG8iIHsKICAgICAgdGFncyAiV2luZG93cyIKICAgIH0KICAgIAogICAgIWVsZW1lbnQgc2VydmVyIHsKICAgICAgaWNvbnMgPSBjb250YWluZXIgIkljb25zIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBJY29ucyBzZXJ2aWNlIHByb3ZpZGVzIGZhdmljb25zIGZvciB3ZWJzaXRlcy4iCiAgICAgICAgY2xpZW50cyAtPiBzZXJ2ZXIuaWNvbnMgIlJlcXVlc3RzIGljb25zIGZvciBjbGVhcnRleHQgdXJscyBmcm9tIiAKICAgICAgfQogICAgfQogICAgCiAgICBkbnMgPSBzb2Z0d2FyZVN5c3RlbSAiRE5TIiB7CiAgICAgIHRhZ3MgIkV4dGVybmFsIgogICAgICB0YWdzICJJY29ucyIKICAgIH0KCiAgICAjIEluY2x1ZGUgc2hhcmVkIGxldmVsIHJlbGF0aW9uc2hpcHMKICAgICMgVXNlciBSZWxhdGlvbnNoaXBzCiAgICB1c2VyIC0+IGNsaWVudHMud2ViICJVc2VzIgogICAgdXNlciAtPiBjbGllbnRzLmJyb3dzZXJfZXh0ZW5zaW9uICJVc2VzIgogICAgdXNlciAtPiBjbGllbnRzLmNsaSAiVXNlcyIKICAgIHVzZXIgLT4gY2xpZW50cy5kZXNrdG9wICJVc2VzIgogICAgYWRtaW4gLT4gY2xpZW50cy53ZWIgIkFkbWluaXN0ZXJzIE9yZ2FuaXphdGlvbnMiCiAgICBwcm92aWRlciAtPiBjbGllbnRzLndlYiAiQWRtaW5pc3RlcnMgUHJvdmlkZXJzIGFuZCBPcmdhbml6YXRpb25zIgogICAgCiAgICAjIEhpZ2gtbGV2ZWwgQ2xpZW50IFJlbGF0aW9uc2hpcHMKICAgIGNsaWVudHMud2ViIC0+IHNlcnZlci5hcGkgIk1ha2VzIHJlcXVlc3RzIHRvIgogICAgY2xpZW50cy5icm93c2VyX2V4dGVuc2lvbiAtPiBzZXJ2ZXIuYXBpICJNYWtlcyByZXF1ZXN0cyB0byIKICAgIGNsaWVudHMuY2xpIC0+IHNlcnZlci5hcGkgIk1ha2VzIHJlcXVlc3RzIHRvIgogICAgY2xpZW50cy5kZXNrdG9wIC0+IHNlcnZlci5hcGkgIk1ha2VzIHJlcXVlc3RzIHRvIgogICAgY2xpZW50cy53ZWIgLT4gc2VydmVyLmlkZW50aXR5ICJBdXRoZW50aWNhdGVzIHdpdGgiCiAgICBjbGllbnRzLmJyb3dzZXJfZXh0ZW5zaW9uIC0+IHNlcnZlci5pZGVudGl0eSAiQXV0aGVudGljYXRlcyBXaXRoIgogICAgY2xpZW50cy5jbGkgLT4gc2VydmVyLmlkZW50aXR5ICJBdXRoZW50aWNhdGVzIFdpdGgiCiAgICBjbGllbnRzLmRlc2t0b3AgLT4gc2VydmVyLmlkZW50aXR5ICJBdXRoZW50aWNhdGVzIFdpdGgiCiAgICBzZXJ2ZXIuYXBpIC0+IHNlcnZlci5pZGVudGl0eSAiVmFsaWRhdGVzIEpXVHMgd2l0aCIgewogICAgICB1cmwgImh0dHBzOi8vYml0d2FyZGVuLmNvbSIKICAgIH0KICAgIGNsaWVudHMgLT4gc2VydmVyLmV2ZW50cyAiUG9zdHMgbG9jYWwgdXNhZ2UgZXZlbnRzIHRvIgogICAgCiAgICAjIHNlbGYgaG9zdCBwaG9uZSBob21lCiAgICBzZWxmX2hvc3RlZF9pbnN0YW5jZXMgLT4gc2VydmVyLm5vdGlmaWNhdGlvbnMgIlNlbmRzIHB1c2ggbm90aWZpY2F0aW9uIHByb3h5IHJlcXVlc3RzIHRvIgoKCiAgICBrZXlfY29ubmVjdG9yIC0+IHNlcnZlci5pZGVudGl0eSAiVmFsaWRhdGVzIEpXVHMgd2l0aCIKICB9CgogIHZpZXdzIHsKICAgIHN0eWxlcyB7CiAgICAgIGVsZW1lbnQgIlBlcnNvbiIgewogICAgICAgIGJhY2tncm91bmQgIzMxMDdkMwogICAgICAgIHNoYXBlIHBlcnNvbgogICAgICB9CiAgICAgIGVsZW1lbnQgIk1TUCIgewogICAgICAgIGJhY2tncm91bmQgIzMxMDdkMwogICAgICAgIHNoYXBlIHBlcnNvbgogICAgICB9CiAgICB9CiAgICBjb21wb25lbnQgY2xpZW50cy5kZXNrdG9wICJkZXNrdG9wX2Jpb21ldHJpY3MiIHsKICAgICAgaW5jbHVkZSAqCiAgICAgIC8vIGF1dG9MYXlvdXQgdGIKICAgIH0KICAgIAogICAgY29tcG9uZW50IGNsaWVudHMuZGVza3RvcCAiZGVza3RvcF9iaW9tZXRyaWNzX21hY29zIiB7CiAgICAgIGluY2x1ZGUgKgogICAgICBleGNsdWRlICJlbGVtZW50LnRhZz09V2luZG93cyIKICAgICAgZXhjbHVkZSAiZWxlbWVudC50YWc9PUxpbnV4IgogICAgCiAgICB9CiAgICAKICAgIGNvbXBvbmVudCBjbGllbnRzLmRlc2t0b3AgImRlc2t0b3BfYmlvbWV0cmljc193aW5kb3dzIiB7CiAgICAgIGluY2x1ZGUgKgogICAgICBleGNsdWRlICJlbGVtZW50LnRhZz09TWFjT1MiCiAgICAgIGV4Y2x1ZGUgImVsZW1lbnQudGFnPT1MaW51eCIKICAgIAogICAgfQogICAgCiAgICBjb21wb25lbnQgY2xpZW50cy5kZXNrdG9wICJkZXNrdG9wX2Jpb21ldHJpY3NfbGludXgiIHsKICAgICAgaW5jbHVkZSAqCiAgICAgIGV4Y2x1ZGUgImVsZW1lbnQudGFnPT1XaW5kb3dzIgogICAgICBleGNsdWRlICJlbGVtZW50LnRhZz09TWFjT1MiCiAgICAKICAgIH0KCiAgICBzeXN0ZW1MYW5kc2NhcGUgIkJpdHdhcmRlbiIgewogICAgICBpbmNsdWRlICoKICAgIH0KCiAgICBjb250YWluZXIgY2xpZW50cyAiYml0d2FyZGVuX2pzX2NsaWVudHMiIHsKICAgICAgaW5jbHVkZSAqCiAgICB9CgogICAgLy8gVGhpcyBpcyBsYXN0IHRvIG92ZXJyaWRlIHRlYW0gc3R5bGVzIHdpdGggY29tbW9uIHN0eWxlcwogICAgc3R5bGVzIHsKICAgICAgdGhlbWUgZGVmYXVsdAogICAgICBlbGVtZW50ICJFbGVtZW50IiB7CiAgICAgICAgY29sb3IgIzNjM2IzYgogICAgICB9CiAgICAgIGVsZW1lbnQgIlBlcnNvbiIgewogICAgICAgIGJhY2tncm91bmQgI2QzNDQwNwogICAgICAgIHNoYXBlIHBlcnNvbgogICAgICB9CiAgICAgIGVsZW1lbnQgIkNvbnRhaW5lciIgewogICAgICAgIGJhY2tncm91bmQgI2Y4ODcyOAogICAgICB9CiAgICAgIGVsZW1lbnQgIk1TUCIgewogICAgICAgIGJhY2tncm91bmQgIzMxMDdkMwogICAgICB9CiAgICAgIGVsZW1lbnQgIlF1ZXVlIiB7CiAgICAgICAgc2hhcGUgcGlwZQogICAgICB9CiAgICAgIGVsZW1lbnQgIk1vYmlsZSIgewogICAgICAgIHNoYXBlIG1vYmlsZURldmljZVBvcnRyYWl0CiAgICAgIH0KICAgICAgZWxlbWVudCAiV2ViIiB7CiAgICAgICAgc2hhcGUgd2ViQnJvd3NlcgogICAgICB9CiAgICAgIGVsZW1lbnQgIkRhdGFiYXNlIiB7CiAgICAgICAgc2hhcGUgY3lsaW5kZXIKICAgICAgfQogICAgICBlbGVtZW50ICJFeHRlcm5hbCIgewogICAgICAgIGNvbG9yICMwMDAwMDAKICAgICAgICBiYWNrZ3JvdW5kICNiNWI1YjUKICAgICAgfQogICAgfQogIH0KfQ=="
|
|
},
|
|
"views": {
|
|
"componentViews": [
|
|
{
|
|
"containerId": "13",
|
|
"dimensions": {
|
|
"height": 3700,
|
|
"width": 3028
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "11",
|
|
"x": 324,
|
|
"y": 165
|
|
},
|
|
{
|
|
"id": "22",
|
|
"x": 220,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "23",
|
|
"x": 324,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "24",
|
|
"x": 1074,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "25",
|
|
"x": 1720,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "26",
|
|
"x": 970,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "27",
|
|
"x": 220,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "31",
|
|
"x": 970,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "32",
|
|
"x": 324,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "33",
|
|
"x": 1074,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 970,
|
|
"y": 3165
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 2378,
|
|
"y": 2565
|
|
}
|
|
],
|
|
"externalContainerBoundariesVisible": false,
|
|
"key": "desktop_biometrics",
|
|
"order": 1,
|
|
"relationships": [
|
|
{
|
|
"id": "28"
|
|
},
|
|
{
|
|
"id": "29"
|
|
},
|
|
{
|
|
"id": "30"
|
|
},
|
|
{
|
|
"id": "34"
|
|
},
|
|
{
|
|
"id": "35"
|
|
},
|
|
{
|
|
"id": "36"
|
|
},
|
|
{
|
|
"id": "37"
|
|
},
|
|
{
|
|
"id": "40"
|
|
},
|
|
{
|
|
"id": "42"
|
|
},
|
|
{
|
|
"id": "43"
|
|
},
|
|
{
|
|
"id": "46"
|
|
},
|
|
{
|
|
"id": "49",
|
|
"vertices": [
|
|
{
|
|
"x": 820,
|
|
"y": 2265
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "50",
|
|
"vertices": [
|
|
{
|
|
"x": 1570,
|
|
"y": 2265
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "51"
|
|
},
|
|
{
|
|
"id": "52"
|
|
},
|
|
{
|
|
"id": "53"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"containerId": "13",
|
|
"dimensions": {
|
|
"height": 3700,
|
|
"width": 3028
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "11",
|
|
"x": 324,
|
|
"y": 165
|
|
},
|
|
{
|
|
"id": "22",
|
|
"x": 220,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "23",
|
|
"x": 324,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "24",
|
|
"x": 1074,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "25",
|
|
"x": 1720,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "31",
|
|
"x": 970,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "32",
|
|
"x": 324,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "33",
|
|
"x": 1074,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 970,
|
|
"y": 3165
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 2378,
|
|
"y": 2565
|
|
}
|
|
],
|
|
"externalContainerBoundariesVisible": false,
|
|
"key": "desktop_biometrics_macos",
|
|
"order": 2,
|
|
"relationships": [
|
|
{
|
|
"id": "28"
|
|
},
|
|
{
|
|
"id": "34"
|
|
},
|
|
{
|
|
"id": "35"
|
|
},
|
|
{
|
|
"id": "40"
|
|
},
|
|
{
|
|
"id": "42"
|
|
},
|
|
{
|
|
"id": "43"
|
|
},
|
|
{
|
|
"id": "46"
|
|
},
|
|
{
|
|
"id": "51"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"containerId": "13",
|
|
"dimensions": {
|
|
"height": 3700,
|
|
"width": 3028
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "11",
|
|
"x": 324,
|
|
"y": 165
|
|
},
|
|
{
|
|
"id": "22",
|
|
"x": 220,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "23",
|
|
"x": 324,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "24",
|
|
"x": 1074,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "26",
|
|
"x": 970,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "31",
|
|
"x": 970,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "32",
|
|
"x": 324,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "33",
|
|
"x": 1074,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 970,
|
|
"y": 3165
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 2378,
|
|
"y": 2565
|
|
}
|
|
],
|
|
"externalContainerBoundariesVisible": false,
|
|
"key": "desktop_biometrics_windows",
|
|
"order": 3,
|
|
"relationships": [
|
|
{
|
|
"id": "29"
|
|
},
|
|
{
|
|
"id": "34"
|
|
},
|
|
{
|
|
"id": "35"
|
|
},
|
|
{
|
|
"id": "37"
|
|
},
|
|
{
|
|
"id": "40"
|
|
},
|
|
{
|
|
"id": "42"
|
|
},
|
|
{
|
|
"id": "43"
|
|
},
|
|
{
|
|
"id": "50",
|
|
"vertices": [
|
|
{
|
|
"x": 1570,
|
|
"y": 2265
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "53"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"containerId": "13",
|
|
"dimensions": {
|
|
"height": 3700,
|
|
"width": 3028
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "11",
|
|
"x": 324,
|
|
"y": 165
|
|
},
|
|
{
|
|
"id": "22",
|
|
"x": 220,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "23",
|
|
"x": 324,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "24",
|
|
"x": 1074,
|
|
"y": 1365
|
|
},
|
|
{
|
|
"id": "27",
|
|
"x": 220,
|
|
"y": 1965
|
|
},
|
|
{
|
|
"id": "31",
|
|
"x": 970,
|
|
"y": 2565
|
|
},
|
|
{
|
|
"id": "32",
|
|
"x": 324,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "33",
|
|
"x": 1074,
|
|
"y": 765
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 970,
|
|
"y": 3165
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 2378,
|
|
"y": 2565
|
|
}
|
|
],
|
|
"externalContainerBoundariesVisible": false,
|
|
"key": "desktop_biometrics_linux",
|
|
"order": 4,
|
|
"relationships": [
|
|
{
|
|
"id": "30"
|
|
},
|
|
{
|
|
"id": "34"
|
|
},
|
|
{
|
|
"id": "35"
|
|
},
|
|
{
|
|
"id": "36"
|
|
},
|
|
{
|
|
"id": "40"
|
|
},
|
|
{
|
|
"id": "42"
|
|
},
|
|
{
|
|
"id": "43"
|
|
},
|
|
{
|
|
"id": "49",
|
|
"vertices": [
|
|
{
|
|
"x": 820,
|
|
"y": 2265
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "52"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"configuration": {
|
|
"branding": {},
|
|
"lastSavedView": "desktop_biometrics",
|
|
"styles": {
|
|
"elements": [
|
|
{
|
|
"background": "#d34407",
|
|
"shape": "Person",
|
|
"tag": "Person"
|
|
},
|
|
{
|
|
"background": "#3107d3",
|
|
"shape": "Person",
|
|
"tag": "MSP"
|
|
},
|
|
{
|
|
"color": "#3c3b3b",
|
|
"tag": "Element"
|
|
},
|
|
{
|
|
"background": "#f88728",
|
|
"tag": "Container"
|
|
},
|
|
{
|
|
"shape": "Pipe",
|
|
"tag": "Queue"
|
|
},
|
|
{
|
|
"shape": "MobileDevicePortrait",
|
|
"tag": "Mobile"
|
|
},
|
|
{
|
|
"shape": "WebBrowser",
|
|
"tag": "Web"
|
|
},
|
|
{
|
|
"shape": "Cylinder",
|
|
"tag": "Database"
|
|
},
|
|
{
|
|
"background": "#b5b5b5",
|
|
"color": "#000000",
|
|
"tag": "External"
|
|
}
|
|
]
|
|
},
|
|
"terminology": {},
|
|
"themes": ["https://static.structurizr.com/themes/default/theme.json"]
|
|
},
|
|
"containerViews": [
|
|
{
|
|
"dimensions": {
|
|
"height": 2616,
|
|
"width": 3304
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "1",
|
|
"x": 1658,
|
|
"y": 208
|
|
},
|
|
{
|
|
"id": "4",
|
|
"x": 1012,
|
|
"y": 2108
|
|
},
|
|
{
|
|
"id": "10",
|
|
"x": 533,
|
|
"y": 908
|
|
},
|
|
{
|
|
"id": "11",
|
|
"x": 2033,
|
|
"y": 908
|
|
},
|
|
{
|
|
"id": "12",
|
|
"x": 1283,
|
|
"y": 908
|
|
},
|
|
{
|
|
"id": "13",
|
|
"x": 2033,
|
|
"y": 1508
|
|
},
|
|
{
|
|
"id": "17",
|
|
"x": 908,
|
|
"y": 208
|
|
},
|
|
{
|
|
"id": "18",
|
|
"x": 208,
|
|
"y": 208
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 1896,
|
|
"y": 2108
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 2646,
|
|
"y": 2108
|
|
}
|
|
],
|
|
"externalSoftwareSystemBoundariesVisible": false,
|
|
"key": "bitwarden_js_clients",
|
|
"order": 6,
|
|
"paperSize": "A3_Landscape",
|
|
"relationships": [
|
|
{
|
|
"id": "41",
|
|
"vertices": [
|
|
{
|
|
"x": 2108,
|
|
"y": 1358
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "44"
|
|
},
|
|
{
|
|
"id": "47"
|
|
},
|
|
{
|
|
"id": "58",
|
|
"vertices": [
|
|
{
|
|
"x": 1133,
|
|
"y": 804
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "60"
|
|
},
|
|
{
|
|
"id": "61"
|
|
},
|
|
{
|
|
"id": "62",
|
|
"vertices": [
|
|
{
|
|
"x": 2633,
|
|
"y": 804
|
|
},
|
|
{
|
|
"x": 2633,
|
|
"y": 1208
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "63"
|
|
},
|
|
{
|
|
"id": "65"
|
|
},
|
|
{
|
|
"id": "68"
|
|
},
|
|
{
|
|
"id": "71"
|
|
},
|
|
{
|
|
"id": "73",
|
|
"vertices": [
|
|
{
|
|
"x": 1350,
|
|
"y": 1508
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "75"
|
|
}
|
|
],
|
|
"softwareSystemId": "9"
|
|
}
|
|
],
|
|
"systemLandscapeViews": [
|
|
{
|
|
"dimensions": {
|
|
"height": 2308,
|
|
"width": 8191
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "1",
|
|
"x": 1733,
|
|
"y": 279
|
|
},
|
|
{
|
|
"id": "2",
|
|
"x": 6083,
|
|
"y": 279
|
|
},
|
|
{
|
|
"id": "3",
|
|
"x": 1708,
|
|
"y": 979
|
|
},
|
|
{
|
|
"id": "4",
|
|
"x": 958,
|
|
"y": 1679
|
|
},
|
|
{
|
|
"id": "9",
|
|
"x": 2408,
|
|
"y": 1029
|
|
},
|
|
{
|
|
"id": "14",
|
|
"x": 958,
|
|
"y": 1029
|
|
},
|
|
{
|
|
"id": "15",
|
|
"x": 208,
|
|
"y": 1029
|
|
},
|
|
{
|
|
"id": "16",
|
|
"x": 5333,
|
|
"y": 329
|
|
},
|
|
{
|
|
"id": "17",
|
|
"x": 2433,
|
|
"y": 279
|
|
},
|
|
{
|
|
"id": "18",
|
|
"x": 3133,
|
|
"y": 279
|
|
},
|
|
{
|
|
"id": "20",
|
|
"x": 4583,
|
|
"y": 329
|
|
},
|
|
{
|
|
"id": "21",
|
|
"x": 3833,
|
|
"y": 329
|
|
},
|
|
{
|
|
"id": "38",
|
|
"x": 3067,
|
|
"y": 1679
|
|
},
|
|
{
|
|
"id": "39",
|
|
"x": 3817,
|
|
"y": 1679
|
|
},
|
|
{
|
|
"id": "57",
|
|
"x": 7533,
|
|
"y": 329
|
|
}
|
|
],
|
|
"enterpriseBoundaryVisible": true,
|
|
"key": "Bitwarden",
|
|
"order": 5,
|
|
"paperSize": "A1_Landscape",
|
|
"relationships": [
|
|
{
|
|
"id": "45"
|
|
},
|
|
{
|
|
"id": "48"
|
|
},
|
|
{
|
|
"id": "56",
|
|
"vertices": [
|
|
{
|
|
"x": 2258,
|
|
"y": 1379
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "59"
|
|
},
|
|
{
|
|
"id": "64"
|
|
},
|
|
{
|
|
"id": "66"
|
|
},
|
|
{
|
|
"id": "84"
|
|
},
|
|
{
|
|
"id": "86"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|