{
  "config": {},
  "specification": {
    "elements": {
      "actor": {
        "notation": "Actor"
      },
      "database": {
        "notation": "Database"
      },
      "service": {
        "notation": "Service",
        "container": true
      },
      "system": {
        "notation": "Software System",
        "container": true
      }
    },
    "relationships": {
      "uses": {
        "notation": "uses"
      }
    },
    "tags": [
      {
        "id": "team-backend",
        "description": "Backend-Team"
      },
      {
        "id": "team-frontend",
        "description": "Frontend-Team"
      },
      {
        "id": "external",
        "description": "Externes System",
        "style": {
          "fillColor": "#dae8fc",
          "strokeColor": "#6c8ebf"
        }
      },
      {
        "id": "critical",
        "description": "Kritisch",
        "style": {
          "fillColor": "#ffe6cc",
          "strokeColor": "#d6b656"
        }
      },
      {
        "id": "gdpr",
        "description": "Verarbeitet personenbezogene Daten"
      }
    ]
  },
  "model": {
    "customer": {
      "kind": "actor",
      "title": "Customer"
    },
    "sendgrid": {
      "kind": "system",
      "title": "SendGrid (E-Mail)",
      "tags": [
        "external"
      ]
    },
    "shop": {
      "kind": "system",
      "title": "Online Shop",
      "children": {
        "api": {
          "kind": "service",
          "title": "REST API",
          "technology": "Go",
          "tags": [
            "team-backend"
          ]
        },
        "authservice": {
          "kind": "service",
          "title": "Auth Service",
          "technology": "Go",
          "tags": [
            "team-backend",
            "gdpr"
          ]
        },
        "db": {
          "kind": "database",
          "title": "PostgreSQL",
          "technology": "PostgreSQL",
          "tags": [
            "team-backend",
            "gdpr"
          ]
        },
        "frontend": {
          "kind": "service",
          "title": "Web Frontend",
          "technology": "React",
          "tags": [
            "team-frontend"
          ]
        },
        "paymentservice": {
          "kind": "service",
          "title": "Payment Service",
          "technology": "Go",
          "tags": [
            "team-backend",
            "critical",
            "gdpr"
          ]
        }
      }
    },
    "stripe": {
      "kind": "system",
      "title": "Stripe Payment",
      "tags": [
        "external",
        "critical"
      ]
    }
  },
  "relationships": [
    {
      "from": "customer",
      "to": "shop",
      "label": "kauft ein",
      "kind": "uses"
    },
    {
      "from": "shop.paymentservice",
      "to": "stripe",
      "label": "process",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "sendgrid",
      "label": "send mail",
      "kind": "uses"
    }
  ],
  "views": {
    "backend": {
      "title": "Backend-Team View",
      "scope": "shop",
      "include": [
        "shop.*"
      ],
      "filter-tags": [
        "team-backend"
      ]
    },
    "context": {
      "title": "System Context",
      "include": [
        "customer",
        "shop",
        "stripe",
        "sendgrid"
      ]
    },
    "critical": {
      "title": "Kritische Systeme",
      "include": [
        "customer",
        "shop",
        "stripe",
        "sendgrid"
      ],
      "filter-tags": [
        "critical",
        "external"
      ]
    }
  }
}