structurizr-java
1590 строк · 62.0 Кб
1{
2"id" : 0,3"name" : "Big Bank plc",4"description" : "This is an example workspace to illustrate the key features of Structurizr, via the DSL, based around a fictional online banking system.",5"properties" : {6"structurizr.dsl" : "LyoKICogVGhpcyBpcyBhIGNvbWJpbmVkIHZlcnNpb24gb2YgdGhlIGZvbGxvd2luZyB3b3Jrc3BhY2VzLCB3aXRoIGF1dG9tYXRpYyBsYXlvdXQgZW5hYmxlZDoKICoKICogLSAiQmlnIEJhbmsgcGxjIC0gU3lzdGVtIExhbmRzY2FwZSIgKGh0dHBzOi8vc3RydWN0dXJpenIuY29tL3NoYXJlLzI4MjAxLykKICogLSAiQmlnIEJhbmsgcGxjIC0gSW50ZXJuZXQgQmFua2luZyBTeXN0ZW0iIChodHRwczovL3N0cnVjdHVyaXpyLmNvbS9zaGFyZS8zNjE0MS8pCiovCndvcmtzcGFjZSAiQmlnIEJhbmsgcGxjIiAiVGhpcyBpcyBhbiBleGFtcGxlIHdvcmtzcGFjZSB0byBpbGx1c3RyYXRlIHRoZSBrZXkgZmVhdHVyZXMgb2YgU3RydWN0dXJpenIsIHZpYSB0aGUgRFNMLCBiYXNlZCBhcm91bmQgYSBmaWN0aW9uYWwgb25saW5lIGJhbmtpbmcgc3lzdGVtLiIgewoKICAgIG1vZGVsIHsKICAgICAgICBjdXN0b21lciA9IHBlcnNvbiAiUGVyc29uYWwgQmFua2luZyBDdXN0b21lciIgIkEgY3VzdG9tZXIgb2YgdGhlIGJhbmssIHdpdGggcGVyc29uYWwgYmFuayBhY2NvdW50cy4iICJDdXN0b21lciIKCiAgICAgICAgZ3JvdXAgIkJpZyBCYW5rIHBsYyIgewogICAgICAgICAgICBzdXBwb3J0U3RhZmYgPSBwZXJzb24gIkN1c3RvbWVyIFNlcnZpY2UgU3RhZmYiICJDdXN0b21lciBzZXJ2aWNlIHN0YWZmIHdpdGhpbiB0aGUgYmFuay4iICJCYW5rIFN0YWZmIgogICAgICAgICAgICBiYWNrb2ZmaWNlID0gcGVyc29uICJCYWNrIE9mZmljZSBTdGFmZiIgIkFkbWluaXN0cmF0aW9uIGFuZCBzdXBwb3J0IHN0YWZmIHdpdGhpbiB0aGUgYmFuay4iICJCYW5rIFN0YWZmIgoKICAgICAgICAgICAgbWFpbmZyYW1lID0gc29mdHdhcmVzeXN0ZW0gIk1haW5mcmFtZSBCYW5raW5nIFN5c3RlbSIgIlN0b3JlcyBhbGwgb2YgdGhlIGNvcmUgYmFua2luZyBpbmZvcm1hdGlvbiBhYm91dCBjdXN0b21lcnMsIGFjY291bnRzLCB0cmFuc2FjdGlvbnMsIGV0Yy4iICJFeGlzdGluZyBTeXN0ZW0iCiAgICAgICAgICAgIGVtYWlsID0gc29mdHdhcmVzeXN0ZW0gIkUtbWFpbCBTeXN0ZW0iICJUaGUgaW50ZXJuYWwgTWljcm9zb2Z0IEV4Y2hhbmdlIGUtbWFpbCBzeXN0ZW0uIiAiRXhpc3RpbmcgU3lzdGVtIgogICAgICAgICAgICBhdG0gPSBzb2Z0d2FyZXN5c3RlbSAiQVRNIiAiQWxsb3dzIGN1c3RvbWVycyB0byB3aXRoZHJhdyBjYXNoLiIgIkV4aXN0aW5nIFN5c3RlbSIKCiAgICAgICAgICAgIGludGVybmV0QmFua2luZ1N5c3RlbSA9IHNvZnR3YXJlc3lzdGVtICJJbnRlcm5ldCBCYW5raW5nIFN5c3RlbSIgIkFsbG93cyBjdXN0b21lcnMgdG8gdmlldyBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBiYW5rIGFjY291bnRzLCBhbmQgbWFrZSBwYXltZW50cy4iIHsKICAgICAgICAgICAgICAgIHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiA9IGNvbnRhaW5lciAiU2luZ2xlLVBhZ2UgQXBwbGljYXRpb24iICJQcm92aWRlcyBhbGwgb2YgdGhlIEludGVybmV0IGJhbmtpbmcgZnVuY3Rpb25hbGl0eSB0byBjdXN0b21lcnMgdmlhIHRoZWlyIHdlYiBicm93c2VyLiIgIkphdmFTY3JpcHQgYW5kIEFuZ3VsYXIiICJXZWIgQnJvd3NlciIKICAgICAgICAgICAgICAgIG1vYmlsZUFwcCA9IGNvbnRhaW5lciAiTW9iaWxlIEFwcCIgIlByb3ZpZGVzIGEgbGltaXRlZCBzdWJzZXQgb2YgdGhlIEludGVybmV0IGJhbmtpbmcgZnVuY3Rpb25hbGl0eSB0byBjdXN0b21lcnMgdmlhIHRoZWlyIG1vYmlsZSBkZXZpY2UuIiAiWGFtYXJpbiIgIk1vYmlsZSBBcHAiCiAgICAgICAgICAgICAgICB3ZWJBcHBsaWNhdGlvbiA9IGNvbnRhaW5lciAiV2ViIEFwcGxpY2F0aW9uIiAiRGVsaXZlcnMgdGhlIHN0YXRpYyBjb250ZW50IGFuZCB0aGUgSW50ZXJuZXQgYmFua2luZyBzaW5nbGUgcGFnZSBhcHBsaWNhdGlvbi4iICJKYXZhIGFuZCBTcHJpbmcgTVZDIgogICAgICAgICAgICAgICAgYXBpQXBwbGljYXRpb24gPSBjb250YWluZXIgIkFQSSBBcHBsaWNhdGlvbiIgIlByb3ZpZGVzIEludGVybmV0IGJhbmtpbmcgZnVuY3Rpb25hbGl0eSB2aWEgYSBKU09OL0hUVFBTIEFQSS4iICJKYXZhIGFuZCBTcHJpbmcgTVZDIiB7CiAgICAgICAgICAgICAgICAgICAgc2lnbmluQ29udHJvbGxlciA9IGNvbXBvbmVudCAiU2lnbiBJbiBDb250cm9sbGVyIiAiQWxsb3dzIHVzZXJzIHRvIHNpZ24gaW4gdG8gdGhlIEludGVybmV0IEJhbmtpbmcgU3lzdGVtLiIgIlNwcmluZyBNVkMgUmVzdCBDb250cm9sbGVyIgogICAgICAgICAgICAgICAgICAgIGFjY291bnRzU3VtbWFyeUNvbnRyb2xsZXIgPSBjb21wb25lbnQgIkFjY291bnRzIFN1bW1hcnkgQ29udHJvbGxlciIgIlByb3ZpZGVzIGN1c3RvbWVycyB3aXRoIGEgc3VtbWFyeSBvZiB0aGVpciBiYW5rIGFjY291bnRzLiIgIlNwcmluZyBNVkMgUmVzdCBDb250cm9sbGVyIgogICAgICAgICAgICAgICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyID0gY29tcG9uZW50ICJSZXNldCBQYXNzd29yZCBDb250cm9sbGVyIiAiQWxsb3dzIHVzZXJzIHRvIHJlc2V0IHRoZWlyIHBhc3N3b3JkcyB3aXRoIGEgc2luZ2xlIHVzZSBVUkwuIiAiU3ByaW5nIE1WQyBSZXN0IENvbnRyb2xsZXIiCiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlDb21wb25lbnQgPSBjb21wb25lbnQgIlNlY3VyaXR5IENvbXBvbmVudCIgIlByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBzaWduaW5nIGluLCBjaGFuZ2luZyBwYXNzd29yZHMsIGV0Yy4iICJTcHJpbmcgQmVhbiIKICAgICAgICAgICAgICAgICAgICBtYWluZnJhbWVCYW5raW5nU3lzdGVtRmFjYWRlID0gY29tcG9uZW50ICJNYWluZnJhbWUgQmFua2luZyBTeXN0ZW0gRmFjYWRlIiAiQSBmYWNhZGUgb250byB0aGUgbWFpbmZyYW1lIGJhbmtpbmcgc3lzdGVtLiIgIlNwcmluZyBCZWFuIgogICAgICAgICAgICAgICAgICAgIGVtYWlsQ29tcG9uZW50ID0gY29tcG9uZW50ICJFLW1haWwgQ29tcG9uZW50IiAiU2VuZHMgZS1tYWlscyB0byB1c2Vycy4iICJTcHJpbmcgQmVhbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRhdGFiYXNlID0gY29udGFpbmVyICJEYXRhYmFzZSIgIlN0b3JlcyB1c2VyIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiwgaGFzaGVkIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLCBhY2Nlc3MgbG9ncywgZXRjLiIgIk9yYWNsZSBEYXRhYmFzZSBTY2hlbWEiICJEYXRhYmFzZSIKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZWxhdGlvbnNoaXBzIGJldHdlZW4gcGVvcGxlIGFuZCBzb2Z0d2FyZSBzeXN0ZW1zCiAgICAgICAgY3VzdG9tZXIgLT4gaW50ZXJuZXRCYW5raW5nU3lzdGVtICJWaWV3cyBhY2NvdW50IGJhbGFuY2VzLCBhbmQgbWFrZXMgcGF5bWVudHMgdXNpbmciCiAgICAgICAgaW50ZXJuZXRCYW5raW5nU3lzdGVtIC0+IG1haW5mcmFtZSAiR2V0cyBhY2NvdW50IGluZm9ybWF0aW9uIGZyb20sIGFuZCBtYWtlcyBwYXltZW50cyB1c2luZyIKICAgICAgICBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gLT4gZW1haWwgIlNlbmRzIGUtbWFpbCB1c2luZyIKICAgICAgICBlbWFpbCAtPiBjdXN0b21lciAiU2VuZHMgZS1tYWlscyB0byIKICAgICAgICBjdXN0b21lciAtPiBzdXBwb3J0U3RhZmYgIkFza3MgcXVlc3Rpb25zIHRvIiAiVGVsZXBob25lIgogICAgICAgIHN1cHBvcnRTdGFmZiAtPiBtYWluZnJhbWUgIlVzZXMiCiAgICAgICAgY3VzdG9tZXIgLT4gYXRtICJXaXRoZHJhd3MgY2FzaCB1c2luZyIKICAgICAgICBhdG0gLT4gbWFpbmZyYW1lICJVc2VzIgogICAgICAgIGJhY2tvZmZpY2UgLT4gbWFpbmZyYW1lICJVc2VzIgoKICAgICAgICAjIHJlbGF0aW9uc2hpcHMgdG8vZnJvbSBjb250YWluZXJzCiAgICAgICAgY3VzdG9tZXIgLT4gd2ViQXBwbGljYXRpb24gIlZpc2l0cyBiaWdiYW5rLmNvbS9pYiB1c2luZyIgIkhUVFBTIgogICAgICAgIGN1c3RvbWVyIC0+IHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAiVmlld3MgYWNjb3VudCBiYWxhbmNlcywgYW5kIG1ha2VzIHBheW1lbnRzIHVzaW5nIgogICAgICAgIGN1c3RvbWVyIC0+IG1vYmlsZUFwcCAiVmlld3MgYWNjb3VudCBiYWxhbmNlcywgYW5kIG1ha2VzIHBheW1lbnRzIHVzaW5nIgogICAgICAgIHdlYkFwcGxpY2F0aW9uIC0+IHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAiRGVsaXZlcnMgdG8gdGhlIGN1c3RvbWVyJ3Mgd2ViIGJyb3dzZXIiCgogICAgICAgICMgcmVsYXRpb25zaGlwcyB0by9mcm9tIGNvbXBvbmVudHMKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gc2lnbmluQ29udHJvbGxlciAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSlNPTi9IVFRQUyIKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gYWNjb3VudHNTdW1tYXJ5Q29udHJvbGxlciAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSlNPTi9IVFRQUyIKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gcmVzZXRQYXNzd29yZENvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IHNpZ25pbkNvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IGFjY291bnRzU3VtbWFyeUNvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IHJlc2V0UGFzc3dvcmRDb250cm9sbGVyICJNYWtlcyBBUEkgY2FsbHMgdG8iICJKU09OL0hUVFBTIgogICAgICAgIHNpZ25pbkNvbnRyb2xsZXIgLT4gc2VjdXJpdHlDb21wb25lbnQgIlVzZXMiCiAgICAgICAgYWNjb3VudHNTdW1tYXJ5Q29udHJvbGxlciAtPiBtYWluZnJhbWVCYW5raW5nU3lzdGVtRmFjYWRlICJVc2VzIgogICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyIC0+IHNlY3VyaXR5Q29tcG9uZW50ICJVc2VzIgogICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyIC0+IGVtYWlsQ29tcG9uZW50ICJVc2VzIgogICAgICAgIHNlY3VyaXR5Q29tcG9uZW50IC0+IGRhdGFiYXNlICJSZWFkcyBmcm9tIGFuZCB3cml0ZXMgdG8iICJTUUwvVENQIgogICAgICAgIG1haW5mcmFtZUJhbmtpbmdTeXN0ZW1GYWNhZGUgLT4gbWFpbmZyYW1lICJNYWtlcyBBUEkgY2FsbHMgdG8iICJYTUwvSFRUUFMiCiAgICAgICAgZW1haWxDb21wb25lbnQgLT4gZW1haWwgIlNlbmRzIGUtbWFpbCB1c2luZyIKCiAgICAgICAgZGVwbG95bWVudEVudmlyb25tZW50ICJEZXZlbG9wbWVudCIgewogICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRGV2ZWxvcGVyIExhcHRvcCIgIiIgIk1pY3Jvc29mdCBXaW5kb3dzIDEwIG9yIEFwcGxlIG1hY09TIiB7CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiV2ViIEJyb3dzZXIiICIiICJDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgb3IgRWRnZSIgewogICAgICAgICAgICAgICAgICAgIGRldmVsb3BlclNpbmdsZVBhZ2VBcHBsaWNhdGlvbkluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2Ugc2luZ2xlUGFnZUFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRG9ja2VyIENvbnRhaW5lciAtIFdlYiBTZXJ2ZXIiICIiICJEb2NrZXIiIHsKICAgICAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiQXBhY2hlIFRvbWNhdCIgIiIgIkFwYWNoZSBUb21jYXQgOC54IiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BlcldlYkFwcGxpY2F0aW9uSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSB3ZWJBcHBsaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZXJBcGlBcHBsaWNhdGlvbkluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2UgYXBpQXBwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRG9ja2VyIENvbnRhaW5lciAtIERhdGFiYXNlIFNlcnZlciIgIiIgIkRvY2tlciIgewogICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJEYXRhYmFzZSBTZXJ2ZXIiICIiICJPcmFjbGUgMTJjIiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BlckRhdGFiYXNlSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSBkYXRhYmFzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiQmlnIEJhbmsgcGxjIiAiIiAiQmlnIEJhbmsgcGxjIGRhdGEgY2VudGVyIiAiIiB7CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiYmlnYmFuay1kZXYwMDEiICIiICIiICIiIHsKICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZVN5c3RlbUluc3RhbmNlIG1haW5mcmFtZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgZGVwbG95bWVudEVudmlyb25tZW50ICJMaXZlIiB7CiAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJDdXN0b21lcidzIG1vYmlsZSBkZXZpY2UiICIiICJBcHBsZSBpT1Mgb3IgQW5kcm9pZCIgewogICAgICAgICAgICAgICAgbGl2ZU1vYmlsZUFwcEluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2UgbW9iaWxlQXBwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkN1c3RvbWVyJ3MgY29tcHV0ZXIiICIiICJNaWNyb3NvZnQgV2luZG93cyBvciBBcHBsZSBtYWNPUyIgewogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIldlYiBCcm93c2VyIiAiIiAiQ2hyb21lLCBGaXJlZm94LCBTYWZhcmksIG9yIEVkZ2UiIHsKICAgICAgICAgICAgICAgICAgICBsaXZlU2luZ2xlUGFnZUFwcGxpY2F0aW9uSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSBzaW5nbGVQYWdlQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkJpZyBCYW5rIHBsYyIgIiIgIkJpZyBCYW5rIHBsYyBkYXRhIGNlbnRlciIgewogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2Jhbmstd2ViKioqIiAiIiAiVWJ1bnR1IDE2LjA0IExUUyIgIiIgNCB7CiAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkFwYWNoZSBUb21jYXQiICIiICJBcGFjaGUgVG9tY2F0IDgueCIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlV2ViQXBwbGljYXRpb25JbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIHdlYkFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2JhbmstYXBpKioqIiAiIiAiVWJ1bnR1IDE2LjA0IExUUyIgIiIgOCB7CiAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkFwYWNoZSBUb21jYXQiICIiICJBcGFjaGUgVG9tY2F0IDgueCIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlQXBpQXBwbGljYXRpb25JbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGFwaUFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJiaWdiYW5rLWRiMDEiICIiICJVYnVudHUgMTYuMDQgTFRTIiB7CiAgICAgICAgICAgICAgICAgICAgcHJpbWFyeURhdGFiYXNlU2VydmVyID0gZGVwbG95bWVudE5vZGUgIk9yYWNsZSAtIFByaW1hcnkiICIiICJPcmFjbGUgMTJjIiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVQcmltYXJ5RGF0YWJhc2VJbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGRhdGFiYXNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2JhbmstZGIwMiIgIiIgIlVidW50dSAxNi4wNCBMVFMiICJGYWlsb3ZlciIgewogICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeURhdGFiYXNlU2VydmVyID0gZGVwbG95bWVudE5vZGUgIk9yYWNsZSAtIFNlY29uZGFyeSIgIiIgIk9yYWNsZSAxMmMiICJGYWlsb3ZlciIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlU2Vjb25kYXJ5RGF0YWJhc2VJbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGRhdGFiYXNlICJGYWlsb3ZlciIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiYmlnYmFuay1wcm9kMDAxIiAiIiAiIiAiIiB7CiAgICAgICAgICAgICAgICAgICAgc29mdHdhcmVTeXN0ZW1JbnN0YW5jZSBtYWluZnJhbWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHJpbWFyeURhdGFiYXNlU2VydmVyIC0+IHNlY29uZGFyeURhdGFiYXNlU2VydmVyICJSZXBsaWNhdGVzIGRhdGEgdG8iCiAgICAgICAgfQogICAgfQoKICAgIHZpZXdzIHsKICAgICAgICBzeXN0ZW1sYW5kc2NhcGUgIlN5c3RlbUxhbmRzY2FwZSIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYXV0b0xheW91dAogICAgICAgIH0KCiAgICAgICAgc3lzdGVtY29udGV4dCBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gIlN5c3RlbUNvbnRleHQiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGFuaW1hdGlvbiB7CiAgICAgICAgICAgICAgICBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0KICAgICAgICAgICAgICAgIGN1c3RvbWVyCiAgICAgICAgICAgICAgICBtYWluZnJhbWUKICAgICAgICAgICAgICAgIGVtYWlsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXV0b0xheW91dAogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHN5c3RlbSBjb250ZXh0IGRpYWdyYW0gZm9yIHRoZSBJbnRlcm5ldCBCYW5raW5nIFN5c3RlbS4iCiAgICAgICAgICAgIHByb3BlcnRpZXMgewogICAgICAgICAgICAgICAgc3RydWN0dXJpenIuZ3JvdXBzIGZhbHNlCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnRhaW5lciBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gIkNvbnRhaW5lcnMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGFuaW1hdGlvbiB7CiAgICAgICAgICAgICAgICBjdXN0b21lciBtYWluZnJhbWUgZW1haWwKICAgICAgICAgICAgICAgIHdlYkFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIG1vYmlsZUFwcAogICAgICAgICAgICAgICAgYXBpQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIGRhdGFiYXNlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXV0b0xheW91dAogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNvbnRhaW5lciBkaWFncmFtIGZvciB0aGUgSW50ZXJuZXQgQmFua2luZyBTeXN0ZW0uIgogICAgICAgIH0KCiAgICAgICAgY29tcG9uZW50IGFwaUFwcGxpY2F0aW9uICJDb21wb25lbnRzIiB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhbmltYXRpb24gewogICAgICAgICAgICAgICAgc2luZ2xlUGFnZUFwcGxpY2F0aW9uIG1vYmlsZUFwcCBkYXRhYmFzZSBlbWFpbCBtYWluZnJhbWUKICAgICAgICAgICAgICAgIHNpZ25pbkNvbnRyb2xsZXIgc2VjdXJpdHlDb21wb25lbnQKICAgICAgICAgICAgICAgIGFjY291bnRzU3VtbWFyeUNvbnRyb2xsZXIgbWFpbmZyYW1lQmFua2luZ1N5c3RlbUZhY2FkZQogICAgICAgICAgICAgICAgcmVzZXRQYXNzd29yZENvbnRyb2xsZXIgZW1haWxDb21wb25lbnQKICAgICAgICAgICAgfQogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBBUEkgQXBwbGljYXRpb24uIgogICAgICAgIH0KCiAgICAgICAgaW1hZ2UgbWFpbmZyYW1lQmFua2luZ1N5c3RlbUZhY2FkZSAiTWFpbmZyYW1lQmFua2luZ1N5c3RlbUZhY2FkZSIgewogICAgICAgICAgICBpbWFnZSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3RydWN0dXJpenIvZXhhbXBsZXMvbWFpbi9kc2wvYmlnLWJhbmstcGxjL2ludGVybmV0LWJhbmtpbmctc3lzdGVtL21haW5mcmFtZS1iYW5raW5nLXN5c3RlbS1mYWNhZGUucG5nCiAgICAgICAgICAgIHRpdGxlICJbQ29kZV0gTWFpbmZyYW1lIEJhbmtpbmcgU3lzdGVtIEZhY2FkZSIKICAgICAgICB9CgogICAgICAgIGR5bmFtaWMgYXBpQXBwbGljYXRpb24gIlNpZ25JbiIgIlN1bW1hcmlzZXMgaG93IHRoZSBzaWduIGluIGZlYXR1cmUgd29ya3MgaW4gdGhlIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9uLiIgewogICAgICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gc2lnbmluQ29udHJvbGxlciAiU3VibWl0cyBjcmVkZW50aWFscyB0byIKICAgICAgICAgICAgc2lnbmluQ29udHJvbGxlciAtPiBzZWN1cml0eUNvbXBvbmVudCAiVmFsaWRhdGVzIGNyZWRlbnRpYWxzIHVzaW5nIgogICAgICAgICAgICBzZWN1cml0eUNvbXBvbmVudCAtPiBkYXRhYmFzZSAic2VsZWN0ICogZnJvbSB1c2VycyB3aGVyZSB1c2VybmFtZSA9ID8iCiAgICAgICAgICAgIGRhdGFiYXNlIC0+IHNlY3VyaXR5Q29tcG9uZW50ICJSZXR1cm5zIHVzZXIgZGF0YSB0byIKICAgICAgICAgICAgc2VjdXJpdHlDb21wb25lbnQgLT4gc2lnbmluQ29udHJvbGxlciAiUmV0dXJucyB0cnVlIGlmIHRoZSBoYXNoZWQgcGFzc3dvcmQgbWF0Y2hlcyIKICAgICAgICAgICAgc2lnbmluQ29udHJvbGxlciAtPiBzaW5nbGVQYWdlQXBwbGljYXRpb24gIlNlbmRzIGJhY2sgYW4gYXV0aGVudGljYXRpb24gdG9rZW4gdG8iCiAgICAgICAgICAgIGF1dG9MYXlvdXQKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlN1bW1hcmlzZXMgaG93IHRoZSBzaWduIGluIGZlYXR1cmUgd29ya3MgaW4gdGhlIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9uLiIKICAgICAgICB9CgogICAgICAgIGRlcGxveW1lbnQgaW50ZXJuZXRCYW5raW5nU3lzdGVtICJEZXZlbG9wbWVudCIgIkRldmVsb3BtZW50RGVwbG95bWVudCIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYW5pbWF0aW9uIHsKICAgICAgICAgICAgICAgIGRldmVsb3BlclNpbmdsZVBhZ2VBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBkZXZlbG9wZXJXZWJBcHBsaWNhdGlvbkluc3RhbmNlIGRldmVsb3BlckFwaUFwcGxpY2F0aW9uSW5zdGFuY2UKICAgICAgICAgICAgICAgIGRldmVsb3BlckRhdGFiYXNlSW5zdGFuY2UKICAgICAgICAgICAgfQogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbiBleGFtcGxlIGRldmVsb3BtZW50IGRlcGxveW1lbnQgc2NlbmFyaW8gZm9yIHRoZSBJbnRlcm5ldCBCYW5raW5nIFN5c3RlbS4iCiAgICAgICAgfQoKICAgICAgICBkZXBsb3ltZW50IGludGVybmV0QmFua2luZ1N5c3RlbSAiTGl2ZSIgIkxpdmVEZXBsb3ltZW50IiB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhbmltYXRpb24gewogICAgICAgICAgICAgICAgbGl2ZVNpbmdsZVBhZ2VBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBsaXZlTW9iaWxlQXBwSW5zdGFuY2UKICAgICAgICAgICAgICAgIGxpdmVXZWJBcHBsaWNhdGlvbkluc3RhbmNlIGxpdmVBcGlBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBsaXZlUHJpbWFyeURhdGFiYXNlSW5zdGFuY2UKICAgICAgICAgICAgICAgIGxpdmVTZWNvbmRhcnlEYXRhYmFzZUluc3RhbmNlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXV0b0xheW91dAogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW4gZXhhbXBsZSBsaXZlIGRlcGxveW1lbnQgc2NlbmFyaW8gZm9yIHRoZSBJbnRlcm5ldCBCYW5raW5nIFN5c3RlbS4iCiAgICAgICAgfQoKICAgICAgICBzdHlsZXMgewogICAgICAgICAgICBlbGVtZW50ICJQZXJzb24iIHsKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgICAgIGZvbnRTaXplIDIyCiAgICAgICAgICAgICAgICBzaGFwZSBQZXJzb24KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDdXN0b21lciIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjMDg0MjdiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiQmFuayBTdGFmZiIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjOTk5OTk5CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiU29mdHdhcmUgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICMxMTY4YmQKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJFeGlzdGluZyBTeXN0ZW0iIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzk5OTk5OQogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkNvbnRhaW5lciIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNDM4ZGQ1CiAgICAgICAgICAgICAgICBjb2xvciAjZmZmZmZmCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiV2ViIEJyb3dzZXIiIHsKICAgICAgICAgICAgICAgIHNoYXBlIFdlYkJyb3dzZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJNb2JpbGUgQXBwIiB7CiAgICAgICAgICAgICAgICBzaGFwZSBNb2JpbGVEZXZpY2VMYW5kc2NhcGUKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJEYXRhYmFzZSIgewogICAgICAgICAgICAgICAgc2hhcGUgQ3lsaW5kZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDb21wb25lbnQiIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzg1YmJmMAogICAgICAgICAgICAgICAgY29sb3IgIzAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkZhaWxvdmVyIiB7CiAgICAgICAgICAgICAgICBvcGFjaXR5IDI1CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K"7},8"configuration" : { },9"model" : {10"people" : [ {11"id" : "1",12"tags" : "Element,Person,Customer",13"properties" : {14"structurizr.dsl.identifier" : "customer"15},16"name" : "Personal Banking Customer",17"description" : "A customer of the bank, with personal bank accounts.",18"relationships" : [ {19"id" : "19",20"tags" : "Relationship",21"properties" : {22"structurizr.dsl.identifier" : "6d299902-3f78-4a39-a8ca-3a61e3e50f3e"23},24"sourceId" : "1",25"destinationId" : "7",26"description" : "Views account balances, and makes payments using"27}, {28"id" : "23",29"tags" : "Relationship",30"properties" : {31"structurizr.dsl.identifier" : "e61b034b-4617-4f42-8831-b171bdd5f7df"32},33"sourceId" : "1",34"destinationId" : "2",35"description" : "Asks questions to",36"technology" : "Telephone"37}, {38"id" : "25",39"tags" : "Relationship",40"properties" : {41"structurizr.dsl.identifier" : "2ebe5df0-e547-4c9b-9403-a83561d958ea"42},43"sourceId" : "1",44"destinationId" : "6",45"description" : "Withdraws cash using"46}, {47"id" : "28",48"tags" : "Relationship",49"properties" : {50"structurizr.dsl.identifier" : "4a08e84b-acb3-4fc4-a7f1-8ebe621a0f0f"51},52"sourceId" : "1",53"destinationId" : "10",54"description" : "Visits bigbank.com/ib using",55"technology" : "HTTPS"56}, {57"id" : "29",58"tags" : "Relationship",59"properties" : {60"structurizr.dsl.identifier" : "025a49a0-4557-44bb-9724-2d7ea4d7e1ed"61},62"sourceId" : "1",63"destinationId" : "8",64"description" : "Views account balances, and makes payments using"65}, {66"id" : "30",67"tags" : "Relationship",68"properties" : {69"structurizr.dsl.identifier" : "c6295d75-dd8c-494e-8d69-096540a25b4b"70},71"sourceId" : "1",72"destinationId" : "9",73"description" : "Views account balances, and makes payments using"74} ],75"location" : "Unspecified"76}, {77"id" : "2",78"tags" : "Element,Person,Bank Staff",79"properties" : {80"structurizr.dsl.identifier" : "supportstaff"81},82"name" : "Customer Service Staff",83"description" : "Customer service staff within the bank.",84"relationships" : [ {85"id" : "24",86"tags" : "Relationship",87"properties" : {88"structurizr.dsl.identifier" : "ad399353-807e-4350-ad5f-2359c54844db"89},90"sourceId" : "2",91"destinationId" : "4",92"description" : "Uses"93} ],94"group" : "Big Bank plc",95"location" : "Unspecified"96}, {97"id" : "3",98"tags" : "Element,Person,Bank Staff",99"properties" : {100"structurizr.dsl.identifier" : "backoffice"101},102"name" : "Back Office Staff",103"description" : "Administration and support staff within the bank.",104"relationships" : [ {105"id" : "27",106"tags" : "Relationship",107"properties" : {108"structurizr.dsl.identifier" : "a4243927-b19d-423f-9f2c-6d84ba3604e3"109},110"sourceId" : "3",111"destinationId" : "4",112"description" : "Uses"113} ],114"group" : "Big Bank plc",115"location" : "Unspecified"116} ],117"softwareSystems" : [ {118"id" : "4",119"tags" : "Element,Software System,Existing System",120"properties" : {121"structurizr.dsl.identifier" : "mainframe"122},123"name" : "Mainframe Banking System",124"description" : "Stores all of the core banking information about customers, accounts, transactions, etc.",125"group" : "Big Bank plc",126"location" : "Unspecified",127"documentation" : { }128}, {129"id" : "5",130"tags" : "Element,Software System,Existing System",131"properties" : {132"structurizr.dsl.identifier" : "email"133},134"name" : "E-mail System",135"description" : "The internal Microsoft Exchange e-mail system.",136"relationships" : [ {137"id" : "22",138"tags" : "Relationship",139"properties" : {140"structurizr.dsl.identifier" : "93b2b770-fec1-40f4-ab14-cec2eb3c75d6"141},142"sourceId" : "5",143"destinationId" : "1",144"description" : "Sends e-mails to"145} ],146"group" : "Big Bank plc",147"location" : "Unspecified",148"documentation" : { }149}, {150"id" : "6",151"tags" : "Element,Software System,Existing System",152"properties" : {153"structurizr.dsl.identifier" : "atm"154},155"name" : "ATM",156"description" : "Allows customers to withdraw cash.",157"relationships" : [ {158"id" : "26",159"tags" : "Relationship",160"properties" : {161"structurizr.dsl.identifier" : "e2e730e2-ce51-4154-9847-b8d73823cdc2"162},163"sourceId" : "6",164"destinationId" : "4",165"description" : "Uses"166} ],167"group" : "Big Bank plc",168"location" : "Unspecified",169"documentation" : { }170}, {171"id" : "7",172"tags" : "Element,Software System",173"properties" : {174"structurizr.dsl.identifier" : "internetbankingsystem"175},176"name" : "Internet Banking System",177"description" : "Allows customers to view information about their bank accounts, and make payments.",178"relationships" : [ {179"id" : "20",180"tags" : "Relationship",181"properties" : {182"structurizr.dsl.identifier" : "bd46add8-7f56-4639-9f1c-1569a681ad92"183},184"sourceId" : "7",185"destinationId" : "4",186"description" : "Gets account information from, and makes payments using"187}, {188"id" : "21",189"tags" : "Relationship",190"properties" : {191"structurizr.dsl.identifier" : "c58d1eb9-d9da-4f37-b9f5-e2035c651abd"192},193"sourceId" : "7",194"destinationId" : "5",195"description" : "Sends e-mail using"196} ],197"group" : "Big Bank plc",198"location" : "Unspecified",199"containers" : [ {200"id" : "18",201"tags" : "Element,Container,Database",202"properties" : {203"structurizr.dsl.identifier" : "database"204},205"name" : "Database",206"description" : "Stores user registration information, hashed authentication credentials, access logs, etc.",207"technology" : "Oracle Database Schema",208"documentation" : { }209}, {210"id" : "9",211"tags" : "Element,Container,Mobile App",212"properties" : {213"structurizr.dsl.identifier" : "mobileapp"214},215"name" : "Mobile App",216"description" : "Provides a limited subset of the Internet banking functionality to customers via their mobile device.",217"relationships" : [ {218"id" : "36",219"tags" : "Relationship",220"properties" : {221"structurizr.dsl.identifier" : "5fce96a5-2f6c-41e1-9263-26174a28ced1"222},223"sourceId" : "9",224"destinationId" : "12",225"description" : "Makes API calls to",226"technology" : "JSON/HTTPS"227}, {228"id" : "37",229"sourceId" : "9",230"destinationId" : "11",231"description" : "Makes API calls to",232"technology" : "JSON/HTTPS",233"linkedRelationshipId" : "36"234}, {235"id" : "38",236"tags" : "Relationship",237"properties" : {238"structurizr.dsl.identifier" : "3ee42ae6-31e2-4644-8d27-0d9f8fde6919"239},240"sourceId" : "9",241"destinationId" : "13",242"description" : "Makes API calls to",243"technology" : "JSON/HTTPS"244}, {245"id" : "39",246"tags" : "Relationship",247"properties" : {248"structurizr.dsl.identifier" : "65f4415c-7575-4230-bd32-6d8d754d01ca"249},250"sourceId" : "9",251"destinationId" : "14",252"description" : "Makes API calls to",253"technology" : "JSON/HTTPS"254} ],255"technology" : "Xamarin",256"documentation" : { }257}, {258"id" : "10",259"tags" : "Element,Container",260"properties" : {261"structurizr.dsl.identifier" : "webapplication"262},263"name" : "Web Application",264"description" : "Delivers the static content and the Internet banking single page application.",265"relationships" : [ {266"id" : "31",267"tags" : "Relationship",268"properties" : {269"structurizr.dsl.identifier" : "792ce67f-78f1-4c65-933b-84eece4334e2"270},271"sourceId" : "10",272"destinationId" : "8",273"description" : "Delivers to the customer's web browser"274} ],275"technology" : "Java and Spring MVC",276"documentation" : { }277}, {278"id" : "11",279"tags" : "Element,Container",280"properties" : {281"structurizr.dsl.identifier" : "apiapplication"282},283"name" : "API Application",284"description" : "Provides Internet banking functionality via a JSON/HTTPS API.",285"relationships" : [ {286"id" : "45",287"sourceId" : "11",288"destinationId" : "18",289"description" : "Reads from and writes to",290"technology" : "SQL/TCP",291"linkedRelationshipId" : "44"292}, {293"id" : "47",294"sourceId" : "11",295"destinationId" : "4",296"description" : "Makes API calls to",297"technology" : "XML/HTTPS",298"linkedRelationshipId" : "46"299}, {300"id" : "49",301"sourceId" : "11",302"destinationId" : "5",303"description" : "Sends e-mail using",304"linkedRelationshipId" : "48"305} ],306"technology" : "Java and Spring MVC",307"components" : [ {308"id" : "16",309"tags" : "Element,Component",310"properties" : {311"structurizr.dsl.identifier" : "mainframebankingsystemfacade"312},313"name" : "Mainframe Banking System Facade",314"description" : "A facade onto the mainframe banking system.",315"relationships" : [ {316"id" : "46",317"tags" : "Relationship",318"properties" : {319"structurizr.dsl.identifier" : "2f9ddb3a-77a2-433c-9257-49bfe5bb0766"320},321"sourceId" : "16",322"destinationId" : "4",323"description" : "Makes API calls to",324"technology" : "XML/HTTPS"325} ],326"technology" : "Spring Bean",327"documentation" : { }328}, {329"id" : "12",330"tags" : "Element,Component",331"properties" : {332"structurizr.dsl.identifier" : "signincontroller"333},334"name" : "Sign In Controller",335"description" : "Allows users to sign in to the Internet Banking System.",336"relationships" : [ {337"id" : "40",338"tags" : "Relationship",339"properties" : {340"structurizr.dsl.identifier" : "2f405114-17b0-4223-aaa1-12f87d1ca8ba"341},342"sourceId" : "12",343"destinationId" : "15",344"description" : "Uses"345} ],346"technology" : "Spring MVC Rest Controller",347"documentation" : { }348}, {349"id" : "13",350"tags" : "Element,Component",351"properties" : {352"structurizr.dsl.identifier" : "accountssummarycontroller"353},354"name" : "Accounts Summary Controller",355"description" : "Provides customers with a summary of their bank accounts.",356"relationships" : [ {357"id" : "41",358"tags" : "Relationship",359"properties" : {360"structurizr.dsl.identifier" : "9920b188-70d1-4f83-b51d-a2f7eb4c6ffc"361},362"sourceId" : "13",363"destinationId" : "16",364"description" : "Uses"365} ],366"technology" : "Spring MVC Rest Controller",367"documentation" : { }368}, {369"id" : "15",370"tags" : "Element,Component",371"properties" : {372"structurizr.dsl.identifier" : "securitycomponent"373},374"name" : "Security Component",375"description" : "Provides functionality related to signing in, changing passwords, etc.",376"relationships" : [ {377"id" : "44",378"tags" : "Relationship",379"properties" : {380"structurizr.dsl.identifier" : "67d3a4e5-1e3f-4046-a121-c0a342a26d25"381},382"sourceId" : "15",383"destinationId" : "18",384"description" : "Reads from and writes to",385"technology" : "SQL/TCP"386} ],387"technology" : "Spring Bean",388"documentation" : { }389}, {390"id" : "14",391"tags" : "Element,Component",392"properties" : {393"structurizr.dsl.identifier" : "resetpasswordcontroller"394},395"name" : "Reset Password Controller",396"description" : "Allows users to reset their passwords with a single use URL.",397"relationships" : [ {398"id" : "42",399"tags" : "Relationship",400"properties" : {401"structurizr.dsl.identifier" : "bd04aed2-60d9-45f9-a75a-bd570b5a9cc4"402},403"sourceId" : "14",404"destinationId" : "15",405"description" : "Uses"406}, {407"id" : "43",408"tags" : "Relationship",409"properties" : {410"structurizr.dsl.identifier" : "aa43b36b-ddc2-4aad-a021-d54f79abd36b"411},412"sourceId" : "14",413"destinationId" : "17",414"description" : "Uses"415} ],416"technology" : "Spring MVC Rest Controller",417"documentation" : { }418}, {419"id" : "17",420"tags" : "Element,Component",421"properties" : {422"structurizr.dsl.identifier" : "emailcomponent"423},424"name" : "E-mail Component",425"description" : "Sends e-mails to users.",426"relationships" : [ {427"id" : "48",428"tags" : "Relationship",429"properties" : {430"structurizr.dsl.identifier" : "3c022388-9eb7-4e47-b524-f480fc361897"431},432"sourceId" : "17",433"destinationId" : "5",434"description" : "Sends e-mail using"435} ],436"technology" : "Spring Bean",437"documentation" : { }438} ],439"documentation" : { }440}, {441"id" : "8",442"tags" : "Element,Container,Web Browser",443"properties" : {444"structurizr.dsl.identifier" : "singlepageapplication"445},446"name" : "Single-Page Application",447"description" : "Provides all of the Internet banking functionality to customers via their web browser.",448"relationships" : [ {449"id" : "32",450"tags" : "Relationship",451"properties" : {452"structurizr.dsl.identifier" : "adb4007f-e5e8-41b9-ac61-d027fac89cdb"453},454"sourceId" : "8",455"destinationId" : "12",456"description" : "Makes API calls to",457"technology" : "JSON/HTTPS"458}, {459"id" : "33",460"sourceId" : "8",461"destinationId" : "11",462"description" : "Makes API calls to",463"technology" : "JSON/HTTPS",464"linkedRelationshipId" : "32"465}, {466"id" : "34",467"tags" : "Relationship",468"properties" : {469"structurizr.dsl.identifier" : "235c5bc1-8163-4415-abb2-9f24d7a03155"470},471"sourceId" : "8",472"destinationId" : "13",473"description" : "Makes API calls to",474"technology" : "JSON/HTTPS"475}, {476"id" : "35",477"tags" : "Relationship",478"properties" : {479"structurizr.dsl.identifier" : "607c5ef3-186c-4f68-a4f1-3be26eb4591f"480},481"sourceId" : "8",482"destinationId" : "14",483"description" : "Makes API calls to",484"technology" : "JSON/HTTPS"485} ],486"technology" : "JavaScript and Angular",487"documentation" : { }488} ],489"documentation" : { }490} ],491"deploymentNodes" : [ {492"id" : "50",493"tags" : "Element,Deployment Node",494"properties" : {495"structurizr.dsl.identifier" : "25239481-454a-4edd-bca5-7ee77ced54e1"496},497"name" : "Developer Laptop",498"environment" : "Development",499"technology" : "Microsoft Windows 10 or Apple macOS",500"instances" : "1",501"children" : [ {502"id" : "53",503"tags" : "Element,Deployment Node",504"properties" : {505"structurizr.dsl.identifier" : "e8ce8a91-df97-4486-b2a0-dcd171cd2ee3"506},507"name" : "Docker Container - Web Server",508"environment" : "Development",509"technology" : "Docker",510"instances" : "1",511"children" : [ {512"id" : "54",513"tags" : "Element,Deployment Node",514"properties" : {515"structurizr.dsl.identifier" : "af91db02-1a49-4a73-848a-ff230caf459b"516},517"name" : "Apache Tomcat",518"environment" : "Development",519"technology" : "Apache Tomcat 8.x",520"instances" : "1",521"containerInstances" : [ {522"id" : "55",523"tags" : "Container Instance",524"properties" : {525"structurizr.dsl.identifier" : "developerwebapplicationinstance"526},527"relationships" : [ {528"id" : "56",529"sourceId" : "55",530"destinationId" : "52",531"description" : "Delivers to the customer's web browser",532"linkedRelationshipId" : "31"533} ],534"environment" : "Development",535"deploymentGroups" : [ "Default" ],536"instanceId" : 1,537"containerId" : "10"538}, {539"id" : "57",540"tags" : "Container Instance",541"properties" : {542"structurizr.dsl.identifier" : "developerapiapplicationinstance"543},544"relationships" : [ {545"id" : "62",546"sourceId" : "57",547"destinationId" : "61",548"description" : "Reads from and writes to",549"technology" : "SQL/TCP",550"linkedRelationshipId" : "45"551}, {552"id" : "66",553"sourceId" : "57",554"destinationId" : "65",555"description" : "Makes API calls to",556"technology" : "XML/HTTPS",557"linkedRelationshipId" : "47"558} ],559"environment" : "Development",560"deploymentGroups" : [ "Default" ],561"instanceId" : 1,562"containerId" : "11"563} ]564} ]565}, {566"id" : "51",567"tags" : "Element,Deployment Node",568"properties" : {569"structurizr.dsl.identifier" : "b7da5a3d-2f5f-41f4-ab17-a81118c842ad"570},571"name" : "Web Browser",572"environment" : "Development",573"technology" : "Chrome, Firefox, Safari, or Edge",574"instances" : "1",575"containerInstances" : [ {576"id" : "52",577"tags" : "Container Instance",578"properties" : {579"structurizr.dsl.identifier" : "developersinglepageapplicationinstance"580},581"relationships" : [ {582"id" : "58",583"sourceId" : "52",584"destinationId" : "57",585"description" : "Makes API calls to",586"technology" : "JSON/HTTPS",587"linkedRelationshipId" : "33"588} ],589"environment" : "Development",590"deploymentGroups" : [ "Default" ],591"instanceId" : 1,592"containerId" : "8"593} ]594}, {595"id" : "59",596"tags" : "Element,Deployment Node",597"properties" : {598"structurizr.dsl.identifier" : "5f95573e-5028-40e6-9b55-b1402dc184b4"599},600"name" : "Docker Container - Database Server",601"environment" : "Development",602"technology" : "Docker",603"instances" : "1",604"children" : [ {605"id" : "60",606"tags" : "Element,Deployment Node",607"properties" : {608"structurizr.dsl.identifier" : "562a146b-9830-4fef-ab67-cadbede1cabb"609},610"name" : "Database Server",611"environment" : "Development",612"technology" : "Oracle 12c",613"instances" : "1",614"containerInstances" : [ {615"id" : "61",616"tags" : "Container Instance",617"properties" : {618"structurizr.dsl.identifier" : "developerdatabaseinstance"619},620"environment" : "Development",621"deploymentGroups" : [ "Default" ],622"instanceId" : 1,623"containerId" : "18"624} ]625} ]626} ]627}, {628"id" : "63",629"tags" : "Element,Deployment Node,",630"properties" : {631"structurizr.dsl.identifier" : "77f85941-3884-4918-bfb5-a55a6d2d7448"632},633"name" : "Big Bank plc",634"environment" : "Development",635"technology" : "Big Bank plc data center",636"instances" : "1",637"children" : [ {638"id" : "64",639"tags" : "Element,Deployment Node,",640"properties" : {641"structurizr.dsl.identifier" : "9e854be8-32f3-4d69-88fd-245871775b15"642},643"name" : "bigbank-dev001",644"environment" : "Development",645"instances" : "1",646"softwareSystemInstances" : [ {647"id" : "65",648"tags" : "Software System Instance",649"properties" : {650"structurizr.dsl.identifier" : "437ac7c3-ebbb-44ce-8a60-80bef8b6fb6e"651},652"environment" : "Development",653"deploymentGroups" : [ "Default" ],654"instanceId" : 1,655"softwareSystemId" : "4"656} ]657} ]658}, {659"id" : "67",660"tags" : "Element,Deployment Node",661"properties" : {662"structurizr.dsl.identifier" : "80be1ff8-fe6c-413b-aac6-9bb6cb9b85c7"663},664"name" : "Customer's mobile device",665"environment" : "Live",666"technology" : "Apple iOS or Android",667"instances" : "1",668"containerInstances" : [ {669"id" : "68",670"tags" : "Container Instance",671"properties" : {672"structurizr.dsl.identifier" : "livemobileappinstance"673},674"relationships" : [ {675"id" : "80",676"sourceId" : "68",677"destinationId" : "79",678"description" : "Makes API calls to",679"technology" : "JSON/HTTPS",680"linkedRelationshipId" : "37"681} ],682"environment" : "Live",683"deploymentGroups" : [ "Default" ],684"instanceId" : 1,685"containerId" : "9"686} ]687}, {688"id" : "69",689"tags" : "Element,Deployment Node",690"properties" : {691"structurizr.dsl.identifier" : "493075d0-96ce-4274-98e2-5327fc48aeb6"692},693"name" : "Customer's computer",694"environment" : "Live",695"technology" : "Microsoft Windows or Apple macOS",696"instances" : "1",697"children" : [ {698"id" : "70",699"tags" : "Element,Deployment Node",700"properties" : {701"structurizr.dsl.identifier" : "45b6f442-c8bf-4923-8270-b9325afe0581"702},703"name" : "Web Browser",704"environment" : "Live",705"technology" : "Chrome, Firefox, Safari, or Edge",706"instances" : "1",707"containerInstances" : [ {708"id" : "71",709"tags" : "Container Instance",710"properties" : {711"structurizr.dsl.identifier" : "livesinglepageapplicationinstance"712},713"relationships" : [ {714"id" : "81",715"sourceId" : "71",716"destinationId" : "79",717"description" : "Makes API calls to",718"technology" : "JSON/HTTPS",719"linkedRelationshipId" : "33"720} ],721"environment" : "Live",722"deploymentGroups" : [ "Default" ],723"instanceId" : 1,724"containerId" : "8"725} ]726} ]727}, {728"id" : "72",729"tags" : "Element,Deployment Node",730"properties" : {731"structurizr.dsl.identifier" : "e7539131-ef26-4370-beda-31449e4c6b07"732},733"name" : "Big Bank plc",734"environment" : "Live",735"technology" : "Big Bank plc data center",736"instances" : "1",737"children" : [ {738"id" : "86",739"tags" : "Element,Deployment Node,Failover",740"properties" : {741"structurizr.dsl.identifier" : "edeb7dc9-7738-4516-9c81-c879369b2ab5"742},743"name" : "bigbank-db02",744"environment" : "Live",745"technology" : "Ubuntu 16.04 LTS",746"instances" : "1",747"children" : [ {748"id" : "87",749"tags" : "Element,Deployment Node,Failover",750"properties" : {751"structurizr.dsl.identifier" : "secondarydatabaseserver"752},753"name" : "Oracle - Secondary",754"environment" : "Live",755"technology" : "Oracle 12c",756"instances" : "1",757"containerInstances" : [ {758"id" : "88",759"tags" : "Container Instance",760"properties" : {761"structurizr.dsl.identifier" : "livesecondarydatabaseinstance"762},763"environment" : "Live",764"deploymentGroups" : [ "Default" ],765"instanceId" : 1,766"containerId" : "18"767} ]768} ]769}, {770"id" : "82",771"tags" : "Element,Deployment Node",772"properties" : {773"structurizr.dsl.identifier" : "7ec5cdd8-2cfe-46f6-8298-575bf81c2463"774},775"name" : "bigbank-db01",776"environment" : "Live",777"technology" : "Ubuntu 16.04 LTS",778"instances" : "1",779"children" : [ {780"id" : "83",781"tags" : "Element,Deployment Node",782"properties" : {783"structurizr.dsl.identifier" : "primarydatabaseserver"784},785"name" : "Oracle - Primary",786"relationships" : [ {787"id" : "93",788"tags" : "Relationship",789"properties" : {790"structurizr.dsl.identifier" : "982513db-e0af-4cde-a468-b98ff002d363"791},792"sourceId" : "83",793"destinationId" : "87",794"description" : "Replicates data to"795} ],796"environment" : "Live",797"technology" : "Oracle 12c",798"instances" : "1",799"containerInstances" : [ {800"id" : "84",801"tags" : "Container Instance",802"properties" : {803"structurizr.dsl.identifier" : "liveprimarydatabaseinstance"804},805"environment" : "Live",806"deploymentGroups" : [ "Default" ],807"instanceId" : 1,808"containerId" : "18"809} ]810} ]811}, {812"id" : "77",813"tags" : "Element,Deployment Node,",814"properties" : {815"structurizr.dsl.identifier" : "291edaeb-88f1-4c8e-9a26-54d0c113b1ae"816},817"name" : "bigbank-api***",818"environment" : "Live",819"technology" : "Ubuntu 16.04 LTS",820"instances" : "8",821"children" : [ {822"id" : "78",823"tags" : "Element,Deployment Node",824"properties" : {825"structurizr.dsl.identifier" : "a89ebe72-8ae6-43bf-8708-cc142a531f6b"826},827"name" : "Apache Tomcat",828"environment" : "Live",829"technology" : "Apache Tomcat 8.x",830"instances" : "1",831"containerInstances" : [ {832"id" : "79",833"tags" : "Container Instance",834"properties" : {835"structurizr.dsl.identifier" : "liveapiapplicationinstance"836},837"relationships" : [ {838"id" : "85",839"sourceId" : "79",840"destinationId" : "84",841"description" : "Reads from and writes to",842"technology" : "SQL/TCP",843"linkedRelationshipId" : "45"844}, {845"id" : "89",846"sourceId" : "79",847"destinationId" : "88",848"description" : "Reads from and writes to",849"technology" : "SQL/TCP",850"linkedRelationshipId" : "45"851}, {852"id" : "92",853"sourceId" : "79",854"destinationId" : "91",855"description" : "Makes API calls to",856"technology" : "XML/HTTPS",857"linkedRelationshipId" : "47"858} ],859"environment" : "Live",860"deploymentGroups" : [ "Default" ],861"instanceId" : 1,862"containerId" : "11"863} ]864} ]865}, {866"id" : "90",867"tags" : "Element,Deployment Node,",868"properties" : {869"structurizr.dsl.identifier" : "cdb15b14-58b4-4ca2-aa56-a162198908c8"870},871"name" : "bigbank-prod001",872"environment" : "Live",873"instances" : "1",874"softwareSystemInstances" : [ {875"id" : "91",876"tags" : "Software System Instance",877"properties" : {878"structurizr.dsl.identifier" : "d3633a49-63a4-4495-80b3-e173391180bb"879},880"environment" : "Live",881"deploymentGroups" : [ "Default" ],882"instanceId" : 1,883"softwareSystemId" : "4"884} ]885}, {886"id" : "73",887"tags" : "Element,Deployment Node,",888"properties" : {889"structurizr.dsl.identifier" : "f55b7219-d698-485d-91c1-ee303f3f5386"890},891"name" : "bigbank-web***",892"environment" : "Live",893"technology" : "Ubuntu 16.04 LTS",894"instances" : "4",895"children" : [ {896"id" : "74",897"tags" : "Element,Deployment Node",898"properties" : {899"structurizr.dsl.identifier" : "1d58ef82-2528-4ded-84b2-af35a7f18009"900},901"name" : "Apache Tomcat",902"environment" : "Live",903"technology" : "Apache Tomcat 8.x",904"instances" : "1",905"containerInstances" : [ {906"id" : "75",907"tags" : "Container Instance",908"properties" : {909"structurizr.dsl.identifier" : "livewebapplicationinstance"910},911"relationships" : [ {912"id" : "76",913"sourceId" : "75",914"destinationId" : "71",915"description" : "Delivers to the customer's web browser",916"linkedRelationshipId" : "31"917} ],918"environment" : "Live",919"deploymentGroups" : [ "Default" ],920"instanceId" : 1,921"containerId" : "10"922} ]923} ]924} ]925} ]926},927"documentation" : { },928"views" : {929"systemLandscapeViews" : [ {930"key" : "SystemLandscape",931"order" : 1,932"automaticLayout" : {933"implementation" : "Graphviz",934"rankDirection" : "TopBottom",935"rankSeparation" : 300,936"nodeSeparation" : 300,937"edgeSeparation" : 0,938"vertices" : false,939"applied" : false940},941"enterpriseBoundaryVisible" : true,942"relationships" : [ {943"id" : "27"944}, {945"id" : "26"946}, {947"id" : "25"948}, {949"id" : "24"950}, {951"id" : "23"952}, {953"id" : "22"954}, {955"id" : "21"956}, {957"id" : "20"958}, {959"id" : "19"960} ],961"elements" : [ {962"id" : "1",963"x" : 0,964"y" : 0965}, {966"id" : "2",967"x" : 0,968"y" : 0969}, {970"id" : "3",971"x" : 0,972"y" : 0973}, {974"id" : "4",975"x" : 0,976"y" : 0977}, {978"id" : "5",979"x" : 0,980"y" : 0981}, {982"id" : "6",983"x" : 0,984"y" : 0985}, {986"id" : "7",987"x" : 0,988"y" : 0989} ]990} ],991"systemContextViews" : [ {992"key" : "SystemContext",993"order" : 2,994"description" : "The system context diagram for the Internet Banking System.",995"properties" : {996"structurizr.groups" : "false"997},998"softwareSystemId" : "7",999"automaticLayout" : {1000"implementation" : "Graphviz",1001"rankDirection" : "TopBottom",1002"rankSeparation" : 300,1003"nodeSeparation" : 300,1004"edgeSeparation" : 0,1005"vertices" : false,1006"applied" : false1007},1008"animations" : [ {1009"order" : 1,1010"elements" : [ "7" ]1011}, {1012"order" : 2,1013"elements" : [ "1" ],1014"relationships" : [ "19" ]1015}, {1016"order" : 3,1017"elements" : [ "4" ],1018"relationships" : [ "20" ]1019}, {1020"order" : 4,1021"elements" : [ "5" ],1022"relationships" : [ "22", "21" ]1023} ],1024"enterpriseBoundaryVisible" : true,1025"relationships" : [ {1026"id" : "22"1027}, {1028"id" : "21"1029}, {1030"id" : "20"1031}, {1032"id" : "19"1033} ],1034"elements" : [ {1035"id" : "1",1036"x" : 0,1037"y" : 01038}, {1039"id" : "4",1040"x" : 0,1041"y" : 01042}, {1043"id" : "5",1044"x" : 0,1045"y" : 01046}, {1047"id" : "7",1048"x" : 0,1049"y" : 01050} ]1051} ],1052"containerViews" : [ {1053"key" : "Containers",1054"order" : 3,1055"description" : "The container diagram for the Internet Banking System.",1056"softwareSystemId" : "7",1057"automaticLayout" : {1058"implementation" : "Graphviz",1059"rankDirection" : "TopBottom",1060"rankSeparation" : 300,1061"nodeSeparation" : 300,1062"edgeSeparation" : 0,1063"vertices" : false,1064"applied" : false1065},1066"animations" : [ {1067"order" : 1,1068"elements" : [ "1", "4", "5" ],1069"relationships" : [ "22" ]1070}, {1071"order" : 2,1072"elements" : [ "10" ],1073"relationships" : [ "28" ]1074}, {1075"order" : 3,1076"elements" : [ "8" ],1077"relationships" : [ "29", "31" ]1078}, {1079"order" : 4,1080"elements" : [ "9" ],1081"relationships" : [ "30" ]1082}, {1083"order" : 5,1084"elements" : [ "11" ],1085"relationships" : [ "33", "47", "37", "49" ]1086}, {1087"order" : 6,1088"elements" : [ "18" ],1089"relationships" : [ "45" ]1090} ],1091"externalSoftwareSystemBoundariesVisible" : true,1092"relationships" : [ {1093"id" : "29"1094}, {1095"id" : "28"1096}, {1097"id" : "37"1098}, {1099"id" : "22"1100}, {1101"id" : "33"1102}, {1103"id" : "45"1104}, {1105"id" : "31"1106}, {1107"id" : "30"1108}, {1109"id" : "47"1110}, {1111"id" : "49"1112} ],1113"elements" : [ {1114"id" : "11",1115"x" : 0,1116"y" : 01117}, {1118"id" : "1",1119"x" : 0,1120"y" : 01121}, {1122"id" : "4",1123"x" : 0,1124"y" : 01125}, {1126"id" : "5",1127"x" : 0,1128"y" : 01129}, {1130"id" : "18",1131"x" : 0,1132"y" : 01133}, {1134"id" : "8",1135"x" : 0,1136"y" : 01137}, {1138"id" : "9",1139"x" : 0,1140"y" : 01141}, {1142"id" : "10",1143"x" : 0,1144"y" : 01145} ]1146} ],1147"componentViews" : [ {1148"key" : "Components",1149"order" : 4,1150"description" : "The component diagram for the API Application.",1151"automaticLayout" : {1152"implementation" : "Graphviz",1153"rankDirection" : "TopBottom",1154"rankSeparation" : 300,1155"nodeSeparation" : 300,1156"edgeSeparation" : 0,1157"vertices" : false,1158"applied" : false1159},1160"animations" : [ {1161"order" : 1,1162"elements" : [ "4", "5", "18", "8", "9" ]1163}, {1164"order" : 2,1165"elements" : [ "12", "15" ],1166"relationships" : [ "44", "36", "40", "32" ]1167}, {1168"order" : 3,1169"elements" : [ "13", "16" ],1170"relationships" : [ "34", "46", "38", "41" ]1171}, {1172"order" : 4,1173"elements" : [ "14", "17" ],1174"relationships" : [ "35", "48", "39", "42", "43" ]1175} ],1176"containerId" : "11",1177"externalContainerBoundariesVisible" : true,1178"relationships" : [ {1179"id" : "40"1180}, {1181"id" : "41"1182}, {1183"id" : "42"1184}, {1185"id" : "43"1186}, {1187"id" : "32"1188}, {1189"id" : "36"1190}, {1191"id" : "35"1192}, {1193"id" : "34"1194}, {1195"id" : "44"1196}, {1197"id" : "46"1198}, {1199"id" : "48"1200}, {1201"id" : "38"1202}, {1203"id" : "39"1204} ],1205"elements" : [ {1206"id" : "12",1207"x" : 0,1208"y" : 01209}, {1210"id" : "13",1211"x" : 0,1212"y" : 01213}, {1214"id" : "14",1215"x" : 0,1216"y" : 01217}, {1218"id" : "4",1219"x" : 0,1220"y" : 01221}, {1222"id" : "15",1223"x" : 0,1224"y" : 01225}, {1226"id" : "16",1227"x" : 0,1228"y" : 01229}, {1230"id" : "5",1231"x" : 0,1232"y" : 01233}, {1234"id" : "17",1235"x" : 0,1236"y" : 01237}, {1238"id" : "18",1239"x" : 0,1240"y" : 01241}, {1242"id" : "8",1243"x" : 0,1244"y" : 01245}, {1246"id" : "9",1247"x" : 0,1248"y" : 01249} ]1250} ],1251"dynamicViews" : [ {1252"key" : "SignIn",1253"order" : 6,1254"description" : "Summarises how the sign in feature works in the single-page application.",1255"automaticLayout" : {1256"implementation" : "Graphviz",1257"rankDirection" : "TopBottom",1258"rankSeparation" : 300,1259"nodeSeparation" : 300,1260"edgeSeparation" : 0,1261"vertices" : false,1262"applied" : false1263},1264"elementId" : "11",1265"externalBoundariesVisible" : true,1266"relationships" : [ {1267"id" : "32",1268"description" : "Submits credentials to",1269"order" : "1",1270"response" : false1271}, {1272"id" : "40",1273"description" : "Validates credentials using",1274"order" : "2",1275"response" : false1276}, {1277"id" : "44",1278"description" : "select * from users where username = ?",1279"order" : "3",1280"response" : false1281}, {1282"id" : "44",1283"description" : "Returns user data to",1284"order" : "4",1285"response" : true1286}, {1287"id" : "40",1288"description" : "Returns true if the hashed password matches",1289"order" : "5",1290"response" : true1291}, {1292"id" : "32",1293"description" : "Sends back an authentication token to",1294"order" : "6",1295"response" : true1296} ],1297"elements" : [ {1298"id" : "12",1299"x" : 0,1300"y" : 01301}, {1302"id" : "15",1303"x" : 0,1304"y" : 01305}, {1306"id" : "18",1307"x" : 0,1308"y" : 01309}, {1310"id" : "8",1311"x" : 0,1312"y" : 01313} ]1314} ],1315"deploymentViews" : [ {1316"key" : "LiveDeployment",1317"order" : 8,1318"description" : "An example live deployment scenario for the Internet Banking System.",1319"softwareSystemId" : "7",1320"automaticLayout" : {1321"implementation" : "Graphviz",1322"rankDirection" : "TopBottom",1323"rankSeparation" : 300,1324"nodeSeparation" : 300,1325"edgeSeparation" : 0,1326"vertices" : false,1327"applied" : false1328},1329"environment" : "Live",1330"animations" : [ {1331"order" : 1,1332"elements" : [ "69", "70", "71" ]1333}, {1334"order" : 2,1335"elements" : [ "67", "68" ]1336}, {1337"order" : 3,1338"elements" : [ "77", "78", "79", "72", "73", "74", "75" ],1339"relationships" : [ "80", "81", "76" ]1340}, {1341"order" : 4,1342"elements" : [ "82", "83", "84" ],1343"relationships" : [ "85" ]1344}, {1345"order" : 5,1346"elements" : [ "88", "86", "87" ],1347"relationships" : [ "89", "93" ]1348} ],1349"relationships" : [ {1350"id" : "93"1351}, {1352"id" : "80"1353}, {1354"id" : "81"1355}, {1356"id" : "92"1357}, {1358"id" : "76"1359}, {1360"id" : "85"1361}, {1362"id" : "89"1363} ],1364"elements" : [ {1365"id" : "88",1366"x" : 0,1367"y" : 01368}, {1369"id" : "77",1370"x" : 0,1371"y" : 01372}, {1373"id" : "67",1374"x" : 0,1375"y" : 01376}, {1377"id" : "78",1378"x" : 0,1379"y" : 01380}, {1381"id" : "68",1382"x" : 0,1383"y" : 01384}, {1385"id" : "79",1386"x" : 0,1387"y" : 01388}, {1389"id" : "69",1390"x" : 0,1391"y" : 01392}, {1393"id" : "90",1394"x" : 0,1395"y" : 01396}, {1397"id" : "91",1398"x" : 0,1399"y" : 01400}, {1401"id" : "70",1402"x" : 0,1403"y" : 01404}, {1405"id" : "71",1406"x" : 0,1407"y" : 01408}, {1409"id" : "82",1410"x" : 0,1411"y" : 01412}, {1413"id" : "83",1414"x" : 0,1415"y" : 01416}, {1417"id" : "72",1418"x" : 0,1419"y" : 01420}, {1421"id" : "84",1422"x" : 0,1423"y" : 01424}, {1425"id" : "73",1426"x" : 0,1427"y" : 01428}, {1429"id" : "74",1430"x" : 0,1431"y" : 01432}, {1433"id" : "86",1434"x" : 0,1435"y" : 01436}, {1437"id" : "75",1438"x" : 0,1439"y" : 01440}, {1441"id" : "87",1442"x" : 0,1443"y" : 01444} ]1445}, {1446"key" : "DevelopmentDeployment",1447"order" : 7,1448"description" : "An example development deployment scenario for the Internet Banking System.",1449"softwareSystemId" : "7",1450"automaticLayout" : {1451"implementation" : "Graphviz",1452"rankDirection" : "TopBottom",1453"rankSeparation" : 300,1454"nodeSeparation" : 300,1455"edgeSeparation" : 0,1456"vertices" : false,1457"applied" : false1458},1459"environment" : "Development",1460"animations" : [ {1461"order" : 1,1462"elements" : [ "50", "51", "52" ]1463}, {1464"order" : 2,1465"elements" : [ "55", "57", "53", "54" ],1466"relationships" : [ "56", "58" ]1467}, {1468"order" : 3,1469"elements" : [ "59", "60", "61" ],1470"relationships" : [ "62" ]1471} ],1472"relationships" : [ {1473"id" : "62"1474}, {1475"id" : "56"1476}, {1477"id" : "66"1478}, {1479"id" : "58"1480} ],1481"elements" : [ {1482"id" : "55",1483"x" : 0,1484"y" : 01485}, {1486"id" : "57",1487"x" : 0,1488"y" : 01489}, {1490"id" : "59",1491"x" : 0,1492"y" : 01493}, {1494"id" : "60",1495"x" : 0,1496"y" : 01497}, {1498"id" : "61",1499"x" : 0,1500"y" : 01501}, {1502"id" : "50",1503"x" : 0,1504"y" : 01505}, {1506"id" : "51",1507"x" : 0,1508"y" : 01509}, {1510"id" : "52",1511"x" : 0,1512"y" : 01513}, {1514"id" : "63",1515"x" : 0,1516"y" : 01517}, {1518"id" : "53",1519"x" : 0,1520"y" : 01521}, {1522"id" : "64",1523"x" : 0,1524"y" : 01525}, {1526"id" : "54",1527"x" : 0,1528"y" : 01529}, {1530"id" : "65",1531"x" : 0,1532"y" : 01533} ]1534} ],1535"imageViews" : [ {1536"key" : "MainframeBankingSystemFacade",1537"order" : 5,1538"title" : "[Code] Mainframe Banking System Facade",1539"elementId" : "16",1540"content" : "https://raw.githubusercontent.com/structurizr/examples/main/dsl/big-bank-plc/internet-banking-system/mainframe-banking-system-facade.png",1541"contentType" : "image/png"1542} ],1543"configuration" : {1544"branding" : { },1545"styles" : {1546"elements" : [ {1547"tag" : "Person",1548"color" : "#ffffff",1549"fontSize" : 22,1550"shape" : "Person"1551}, {1552"tag" : "Customer",1553"background" : "#08427b"1554}, {1555"tag" : "Bank Staff",1556"background" : "#999999"1557}, {1558"tag" : "Software System",1559"background" : "#1168bd",1560"color" : "#ffffff"1561}, {1562"tag" : "Existing System",1563"background" : "#999999",1564"color" : "#ffffff"1565}, {1566"tag" : "Container",1567"background" : "#438dd5",1568"color" : "#ffffff"1569}, {1570"tag" : "Web Browser",1571"shape" : "WebBrowser"1572}, {1573"tag" : "Mobile App",1574"shape" : "MobileDeviceLandscape"1575}, {1576"tag" : "Database",1577"shape" : "Cylinder"1578}, {1579"tag" : "Component",1580"background" : "#85bbf0",1581"color" : "#000000"1582}, {1583"tag" : "Failover",1584"opacity" : 251585} ]1586},1587"terminology" : { }1588}1589}1590}