{"id":3,"name":"Big Bank plc","description":"This is an example workspace to illustrate the key features of Structurizr, via the DSL, based around a fictional online banking system.","lastModifiedDate":"2023-03-28T08:44:27.731Z","properties":{"structurizr.dsl":"LyoKICogVGhpcyBpcyBhIGNvbWJpbmVkIHZlcnNpb24gb2YgdGhlIGZvbGxvd2luZyB3b3Jrc3BhY2VzOgogKgogKiAtICJCaWcgQmFuayBwbGMgLSBTeXN0ZW0gTGFuZHNjYXBlIiAoaHR0cHM6Ly9zdHJ1Y3R1cml6ci5jb20vc2hhcmUvMjgyMDEvKQogKiAtICJCaWcgQmFuayBwbGMgLSBJbnRlcm5ldCBCYW5raW5nIFN5c3RlbSIgKGh0dHBzOi8vc3RydWN0dXJpenIuY29tL3NoYXJlLzM2MTQxLykKKi8Kd29ya3NwYWNlICJCaWcgQmFuayBwbGMiICJUaGlzIGlzIGFuIGV4YW1wbGUgd29ya3NwYWNlIHRvIGlsbHVzdHJhdGUgdGhlIGtleSBmZWF0dXJlcyBvZiBTdHJ1Y3R1cml6ciwgdmlhIHRoZSBEU0wsIGJhc2VkIGFyb3VuZCBhIGZpY3Rpb25hbCBvbmxpbmUgYmFua2luZyBzeXN0ZW0uIiB7CgogICAgbW9kZWwgewogICAgICAgIGN1c3RvbWVyID0gcGVyc29uICJQZXJzb25hbCBCYW5raW5nIEN1c3RvbWVyIiAiQSBjdXN0b21lciBvZiB0aGUgYmFuaywgd2l0aCBwZXJzb25hbCBiYW5rIGFjY291bnRzLiIgIkN1c3RvbWVyIgoKICAgICAgICBlbnRlcnByaXNlICJCaWcgQmFuayBwbGMiIHsKICAgICAgICAgICAgc3VwcG9ydFN0YWZmID0gcGVyc29uICJDdXN0b21lciBTZXJ2aWNlIFN0YWZmIiAiQ3VzdG9tZXIgc2VydmljZSBzdGFmZiB3aXRoaW4gdGhlIGJhbmsuIiAiQmFuayBTdGFmZiIKICAgICAgICAgICAgYmFja29mZmljZSA9IHBlcnNvbiAiQmFjayBPZmZpY2UgU3RhZmYiICJBZG1pbmlzdHJhdGlvbiBhbmQgc3VwcG9ydCBzdGFmZiB3aXRoaW4gdGhlIGJhbmsuIiAiQmFuayBTdGFmZiIKCiAgICAgICAgICAgIG1haW5mcmFtZSA9IHNvZnR3YXJlc3lzdGVtICJNYWluZnJhbWUgQmFua2luZyBTeXN0ZW0iICJTdG9yZXMgYWxsIG9mIHRoZSBjb3JlIGJhbmtpbmcgaW5mb3JtYXRpb24gYWJvdXQgY3VzdG9tZXJzLCBhY2NvdW50cywgdHJhbnNhY3Rpb25zLCBldGMuIiAiRXhpc3RpbmcgU3lzdGVtIgogICAgICAgICAgICBlbWFpbCA9IHNvZnR3YXJlc3lzdGVtICJFLW1haWwgU3lzdGVtIiAiVGhlIGludGVybmFsIE1pY3Jvc29mdCBFeGNoYW5nZSBlLW1haWwgc3lzdGVtLiIgIkV4aXN0aW5nIFN5c3RlbSIKICAgICAgICAgICAgYXRtID0gc29mdHdhcmVzeXN0ZW0gIkFUTSIgIkFsbG93cyBjdXN0b21lcnMgdG8gd2l0aGRyYXcgY2FzaC4iICJFeGlzdGluZyBTeXN0ZW0iCgogICAgICAgICAgICBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gPSBzb2Z0d2FyZXN5c3RlbSAiSW50ZXJuZXQgQmFua2luZyBTeXN0ZW0iICJBbGxvd3MgY3VzdG9tZXJzIHRvIHZpZXcgaW5mb3JtYXRpb24gYWJvdXQgdGhlaXIgYmFuayBhY2NvdW50cywgYW5kIG1ha2UgcGF5bWVudHMuIiB7CiAgICAgICAgICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gPSBjb250YWluZXIgIlNpbmdsZS1QYWdlIEFwcGxpY2F0aW9uIiAiUHJvdmlkZXMgYWxsIG9mIHRoZSBJbnRlcm5ldCBiYW5raW5nIGZ1bmN0aW9uYWxpdHkgdG8gY3VzdG9tZXJzIHZpYSB0aGVpciB3ZWIgYnJvd3Nlci4iICJKYXZhU2NyaXB0IGFuZCBBbmd1bGFyIiAiV2ViIEJyb3dzZXIiCiAgICAgICAgICAgICAgICBtb2JpbGVBcHAgPSBjb250YWluZXIgIk1vYmlsZSBBcHAiICJQcm92aWRlcyBhIGxpbWl0ZWQgc3Vic2V0IG9mIHRoZSBJbnRlcm5ldCBiYW5raW5nIGZ1bmN0aW9uYWxpdHkgdG8gY3VzdG9tZXJzIHZpYSB0aGVpciBtb2JpbGUgZGV2aWNlLiIgIlhhbWFyaW4iICJNb2JpbGUgQXBwIgogICAgICAgICAgICAgICAgd2ViQXBwbGljYXRpb24gPSBjb250YWluZXIgIldlYiBBcHBsaWNhdGlvbiIgIkRlbGl2ZXJzIHRoZSBzdGF0aWMgY29udGVudCBhbmQgdGhlIEludGVybmV0IGJhbmtpbmcgc2luZ2xlIHBhZ2UgYXBwbGljYXRpb24uIiAiSmF2YSBhbmQgU3ByaW5nIE1WQyIKICAgICAgICAgICAgICAgIGFwaUFwcGxpY2F0aW9uID0gY29udGFpbmVyICJBUEkgQXBwbGljYXRpb24iICJQcm92aWRlcyBJbnRlcm5ldCBiYW5raW5nIGZ1bmN0aW9uYWxpdHkgdmlhIGEgSlNPTi9IVFRQUyBBUEkuIiAiSmF2YSBhbmQgU3ByaW5nIE1WQyIgewogICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgewogICAgICAgICAgICAgICAgICAgICAgIGFwaWJvb2sgImh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3N3YWdnZXItdWkuaHRtbCIKICAgICAgICAgICAgICAgICAgICAgICBydW5ib29rICJodHRwczovL3d3dy5leGFtcGxlLmNvbS9ydW5ib29rLmh0bWwiCiAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeSAiaHR0cHM6Ly9naXRsYWIuZXhhbXBsZS5jb20vYmlnLWJhbmstcGxjIgogICAgICAgICAgICAgICAgICAgICAgIGRldiAiZGV2QGV4YW1wbGUuY29tIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgc2lnbmluQ29udHJvbGxlciA9IGNvbXBvbmVudCAiU2lnbiBJbiBDb250cm9sbGVyIiAiQWxsb3dzIHVzZXJzIHRvIHNpZ24gaW4gdG8gdGhlIEludGVybmV0IEJhbmtpbmcgU3lzdGVtLiIgIlNwcmluZyBNVkMgUmVzdCBDb250cm9sbGVyIgogICAgICAgICAgICAgICAgICAgIGFjY291bnRzU3VtbWFyeUNvbnRyb2xsZXIgPSBjb21wb25lbnQgIkFjY291bnRzIFN1bW1hcnkgQ29udHJvbGxlciIgIlByb3ZpZGVzIGN1c3RvbWVycyB3aXRoIGEgc3VtbWFyeSBvZiB0aGVpciBiYW5rIGFjY291bnRzLiIgIlNwcmluZyBNVkMgUmVzdCBDb250cm9sbGVyIgogICAgICAgICAgICAgICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyID0gY29tcG9uZW50ICJSZXNldCBQYXNzd29yZCBDb250cm9sbGVyIiAiQWxsb3dzIHVzZXJzIHRvIHJlc2V0IHRoZWlyIHBhc3N3b3JkcyB3aXRoIGEgc2luZ2xlIHVzZSBVUkwuIiAiU3ByaW5nIE1WQyBSZXN0IENvbnRyb2xsZXIiCiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlDb21wb25lbnQgPSBjb21wb25lbnQgIlNlY3VyaXR5IENvbXBvbmVudCIgIlByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBzaWduaW5nIGluLCBjaGFuZ2luZyBwYXNzd29yZHMsIGV0Yy4iICJTcHJpbmcgQmVhbiIKICAgICAgICAgICAgICAgICAgICBtYWluZnJhbWVCYW5raW5nU3lzdGVtRmFjYWRlID0gY29tcG9uZW50ICJNYWluZnJhbWUgQmFua2luZyBTeXN0ZW0gRmFjYWRlIiAiQSBmYWNhZGUgb250byB0aGUgbWFpbmZyYW1lIGJhbmtpbmcgc3lzdGVtLiIgIlNwcmluZyBCZWFuIgogICAgICAgICAgICAgICAgICAgIGVtYWlsQ29tcG9uZW50ID0gY29tcG9uZW50ICJFLW1haWwgQ29tcG9uZW50IiAiU2VuZHMgZS1tYWlscyB0byB1c2Vycy4iICJTcHJpbmcgQmVhbiIKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRhdGFiYXNlID0gY29udGFpbmVyICJEYXRhYmFzZSIgIlN0b3JlcyB1c2VyIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiwgaGFzaGVkIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLCBhY2Nlc3MgbG9ncywgZXRjLiIgIk9yYWNsZSBEYXRhYmFzZSBTY2hlbWEiICJEYXRhYmFzZSIKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZWxhdGlvbnNoaXBzIGJldHdlZW4gcGVvcGxlIGFuZCBzb2Z0d2FyZSBzeXN0ZW1zCiAgICAgICAgY3VzdG9tZXIgLT4gaW50ZXJuZXRCYW5raW5nU3lzdGVtICJWaWV3cyBhY2NvdW50IGJhbGFuY2VzLCBhbmQgbWFrZXMgcGF5bWVudHMgdXNpbmciCiAgICAgICAgaW50ZXJuZXRCYW5raW5nU3lzdGVtIC0+IG1haW5mcmFtZSAiR2V0cyBhY2NvdW50IGluZm9ybWF0aW9uIGZyb20sIGFuZCBtYWtlcyBwYXltZW50cyB1c2luZyIKICAgICAgICBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gLT4gZW1haWwgIlNlbmRzIGUtbWFpbCB1c2luZyIKICAgICAgICBlbWFpbCAtPiBjdXN0b21lciAiU2VuZHMgZS1tYWlscyB0byIKICAgICAgICBjdXN0b21lciAtPiBzdXBwb3J0U3RhZmYgIkFza3MgcXVlc3Rpb25zIHRvIiAiVGVsZXBob25lIgogICAgICAgIHN1cHBvcnRTdGFmZiAtPiBtYWluZnJhbWUgIlVzZXMiCiAgICAgICAgY3VzdG9tZXIgLT4gYXRtICJXaXRoZHJhd3MgY2FzaCB1c2luZyIKICAgICAgICBhdG0gLT4gbWFpbmZyYW1lICJVc2VzIgogICAgICAgIGJhY2tvZmZpY2UgLT4gbWFpbmZyYW1lICJVc2VzIgoKICAgICAgICAjIHJlbGF0aW9uc2hpcHMgdG8vZnJvbSBjb250YWluZXJzCiAgICAgICAgY3VzdG9tZXIgLT4gd2ViQXBwbGljYXRpb24gIlZpc2l0cyBiaWdiYW5rLmNvbS9pYiB1c2luZyIgIkhUVFBTIgogICAgICAgIGN1c3RvbWVyIC0+IHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAiVmlld3MgYWNjb3VudCBiYWxhbmNlcywgYW5kIG1ha2VzIHBheW1lbnRzIHVzaW5nIgogICAgICAgIGN1c3RvbWVyIC0+IG1vYmlsZUFwcCAiVmlld3MgYWNjb3VudCBiYWxhbmNlcywgYW5kIG1ha2VzIHBheW1lbnRzIHVzaW5nIgogICAgICAgIHdlYkFwcGxpY2F0aW9uIC0+IHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAiRGVsaXZlcnMgdG8gdGhlIGN1c3RvbWVyJ3Mgd2ViIGJyb3dzZXIiCgogICAgICAgICMgcmVsYXRpb25zaGlwcyB0by9mcm9tIGNvbXBvbmVudHMKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gc2lnbmluQ29udHJvbGxlciAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSlNPTi9IVFRQUyIKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gYWNjb3VudHNTdW1tYXJ5Q29udHJvbGxlciAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSlNPTi9IVFRQUyIKICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gLT4gcmVzZXRQYXNzd29yZENvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IHNpZ25pbkNvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IGFjY291bnRzU3VtbWFyeUNvbnRyb2xsZXIgIk1ha2VzIEFQSSBjYWxscyB0byIgIkpTT04vSFRUUFMiCiAgICAgICAgbW9iaWxlQXBwIC0+IHJlc2V0UGFzc3dvcmRDb250cm9sbGVyICJNYWtlcyBBUEkgY2FsbHMgdG8iICJKU09OL0hUVFBTIgogICAgICAgIHNpZ25pbkNvbnRyb2xsZXIgLT4gc2VjdXJpdHlDb21wb25lbnQgIlVzZXMiCiAgICAgICAgYWNjb3VudHNTdW1tYXJ5Q29udHJvbGxlciAtPiBtYWluZnJhbWVCYW5raW5nU3lzdGVtRmFjYWRlICJVc2VzIgogICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyIC0+IHNlY3VyaXR5Q29tcG9uZW50ICJVc2VzIgogICAgICAgIHJlc2V0UGFzc3dvcmRDb250cm9sbGVyIC0+IGVtYWlsQ29tcG9uZW50ICJVc2VzIgogICAgICAgIHNlY3VyaXR5Q29tcG9uZW50IC0+IGRhdGFiYXNlICJSZWFkcyBmcm9tIGFuZCB3cml0ZXMgdG8iICJKREJDIgogICAgICAgIG1haW5mcmFtZUJhbmtpbmdTeXN0ZW1GYWNhZGUgLT4gbWFpbmZyYW1lICJNYWtlcyBBUEkgY2FsbHMgdG8iICJYTUwvSFRUUFMiCiAgICAgICAgZW1haWxDb21wb25lbnQgLT4gZW1haWwgIlNlbmRzIGUtbWFpbCB1c2luZyIKCiAgICAgICAgZGVwbG95bWVudEVudmlyb25tZW50ICJEZXZlbG9wbWVudCIgewogICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRGV2ZWxvcGVyIExhcHRvcCIgIiIgIk1pY3Jvc29mdCBXaW5kb3dzIDEwIG9yIEFwcGxlIG1hY09TIiB7CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiV2ViIEJyb3dzZXIiICIiICJDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgb3IgRWRnZSIgewogICAgICAgICAgICAgICAgICAgIGRldmVsb3BlclNpbmdsZVBhZ2VBcHBsaWNhdGlvbkluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2Ugc2luZ2xlUGFnZUFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRG9ja2VyIENvbnRhaW5lciAtIFdlYiBTZXJ2ZXIiICIiICJEb2NrZXIiIHsKICAgICAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiQXBhY2hlIFRvbWNhdCIgIiIgIkFwYWNoZSBUb21jYXQgOC54IiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BlcldlYkFwcGxpY2F0aW9uSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSB3ZWJBcHBsaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZXJBcGlBcHBsaWNhdGlvbkluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2UgYXBpQXBwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiRG9ja2VyIENvbnRhaW5lciAtIERhdGFiYXNlIFNlcnZlciIgIiIgIkRvY2tlciIgewogICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJEYXRhYmFzZSBTZXJ2ZXIiICIiICJPcmFjbGUgMTJjIiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BlckRhdGFiYXNlSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSBkYXRhYmFzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiQmlnIEJhbmsgcGxjIiAiIiAiQmlnIEJhbmsgcGxjIGRhdGEgY2VudGVyIiAiIiB7CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiYmlnYmFuay1kZXYwMDEiICIiICIiICIiIHsKICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZVN5c3RlbUluc3RhbmNlIG1haW5mcmFtZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgZGVwbG95bWVudEVudmlyb25tZW50ICJMaXZlIiB7CiAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJDdXN0b21lcidzIG1vYmlsZSBkZXZpY2UiICIiICJBcHBsZSBpT1Mgb3IgQW5kcm9pZCIgewogICAgICAgICAgICAgICAgbGl2ZU1vYmlsZUFwcEluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2UgbW9iaWxlQXBwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkN1c3RvbWVyJ3MgY29tcHV0ZXIiICIiICJNaWNyb3NvZnQgV2luZG93cyBvciBBcHBsZSBtYWNPUyIgewogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIldlYiBCcm93c2VyIiAiIiAiQ2hyb21lLCBGaXJlZm94LCBTYWZhcmksIG9yIEVkZ2UiIHsKICAgICAgICAgICAgICAgICAgICBsaXZlU2luZ2xlUGFnZUFwcGxpY2F0aW9uSW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZSBzaW5nbGVQYWdlQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkJpZyBCYW5rIHBsYyIgIiIgIkJpZyBCYW5rIHBsYyBkYXRhIGNlbnRlciIgewogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2Jhbmstd2ViKioqIiAiIiAiVWJ1bnR1IDE2LjA0IExUUyIgIiIgNCB7CiAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkFwYWNoZSBUb21jYXQiICIiICJBcGFjaGUgVG9tY2F0IDgueCIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlV2ViQXBwbGljYXRpb25JbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIHdlYkFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2JhbmstYXBpKioqIiAiIiAiVWJ1bnR1IDE2LjA0IExUUyIgIiIgOCB7CiAgICAgICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgIkFwYWNoZSBUb21jYXQiICIiICJBcGFjaGUgVG9tY2F0IDgueCIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlQXBpQXBwbGljYXRpb25JbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGFwaUFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGRlcGxveW1lbnROb2RlICJiaWdiYW5rLWRiMDEiICIiICJVYnVudHUgMTYuMDQgTFRTIiB7CiAgICAgICAgICAgICAgICAgICAgcHJpbWFyeURhdGFiYXNlU2VydmVyID0gZGVwbG95bWVudE5vZGUgIk9yYWNsZSAtIFByaW1hcnkiICIiICJPcmFjbGUgMTJjIiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVQcmltYXJ5RGF0YWJhc2VJbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGRhdGFiYXNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVwbG95bWVudE5vZGUgImJpZ2JhbmstZGIwMiIgIiIgIlVidW50dSAxNi4wNCBMVFMiICJGYWlsb3ZlciIgewogICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeURhdGFiYXNlU2VydmVyID0gZGVwbG95bWVudE5vZGUgIk9yYWNsZSAtIFNlY29uZGFyeSIgIiIgIk9yYWNsZSAxMmMiICJGYWlsb3ZlciIgewogICAgICAgICAgICAgICAgICAgICAgICBsaXZlU2Vjb25kYXJ5RGF0YWJhc2VJbnN0YW5jZSA9IGNvbnRhaW5lckluc3RhbmNlIGRhdGFiYXNlICJGYWlsb3ZlciIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZXBsb3ltZW50Tm9kZSAiYmlnYmFuay1wcm9kMDAxIiAiIiAiIiAiIiB7CiAgICAgICAgICAgICAgICAgICAgc29mdHdhcmVTeXN0ZW1JbnN0YW5jZSBtYWluZnJhbWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHJpbWFyeURhdGFiYXNlU2VydmVyIC0+IHNlY29uZGFyeURhdGFiYXNlU2VydmVyICJSZXBsaWNhdGVzIGRhdGEgdG8iCiAgICAgICAgfQogICAgfQoKICAgIHZpZXdzIHsKICAgICAgICBzeXN0ZW1sYW5kc2NhcGUgIlN5c3RlbUxhbmRzY2FwZSIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgLy9hdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBzeXN0ZW1jb250ZXh0IGludGVybmV0QmFua2luZ1N5c3RlbSAiU3lzdGVtQ29udGV4dCIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYW5pbWF0aW9uIHsKICAgICAgICAgICAgICAgIGludGVybmV0QmFua2luZ1N5c3RlbQogICAgICAgICAgICAgICAgY3VzdG9tZXIKICAgICAgICAgICAgICAgIG1haW5mcmFtZQogICAgICAgICAgICAgICAgZW1haWwKICAgICAgICAgICAgfQogICAgICAgICAgIC8vIGF1dG9MYXlvdXQKICAgICAgICB9CgogICAgICAgIGNvbnRhaW5lciBpbnRlcm5ldEJhbmtpbmdTeXN0ZW0gIkNvbnRhaW5lcnMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGFuaW1hdGlvbiB7CiAgICAgICAgICAgICAgICBjdXN0b21lciBtYWluZnJhbWUgZW1haWwKICAgICAgICAgICAgICAgIHdlYkFwcGxpY2F0aW9uCiAgICAgICAgICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIG1vYmlsZUFwcAogICAgICAgICAgICAgICAgYXBpQXBwbGljYXRpb24KICAgICAgICAgICAgICAgIGRhdGFiYXNlCiAgICAgICAgICAgIH0KICAgICAgICAgIC8vICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgYXBpQXBwbGljYXRpb24gIkNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGFuaW1hdGlvbiB7CiAgICAgICAgICAgICAgICBzaW5nbGVQYWdlQXBwbGljYXRpb24gbW9iaWxlQXBwIGRhdGFiYXNlIGVtYWlsIG1haW5mcmFtZQogICAgICAgICAgICAgICAgc2lnbmluQ29udHJvbGxlciBzZWN1cml0eUNvbXBvbmVudAogICAgICAgICAgICAgICAgYWNjb3VudHNTdW1tYXJ5Q29udHJvbGxlciBtYWluZnJhbWVCYW5raW5nU3lzdGVtRmFjYWRlCiAgICAgICAgICAgICAgICByZXNldFBhc3N3b3JkQ29udHJvbGxlciBlbWFpbENvbXBvbmVudAogICAgICAgICAgICB9CiAgICAgICAgICAgLy8gYXV0b0xheW91dAogICAgICAgIH0KCiAgICAgICAgZHluYW1pYyBhcGlBcHBsaWNhdGlvbiAiU2lnbkluIiAiU3VtbWFyaXNlcyBob3cgdGhlIHNpZ24gaW4gZmVhdHVyZSB3b3JrcyBpbiB0aGUgc2luZ2xlLXBhZ2UgYXBwbGljYXRpb24uIiB7CiAgICAgICAgICAgIHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAtPiBzaWduaW5Db250cm9sbGVyICJTdWJtaXRzIGNyZWRlbnRpYWxzIHRvIgogICAgICAgICAgICBzaWduaW5Db250cm9sbGVyIC0+IHNlY3VyaXR5Q29tcG9uZW50ICJWYWxpZGF0ZXMgY3JlZGVudGlhbHMgdXNpbmciCiAgICAgICAgICAgIHNlY3VyaXR5Q29tcG9uZW50IC0+IGRhdGFiYXNlICJzZWxlY3QgKiBmcm9tIHVzZXJzIHdoZXJlIHVzZXJuYW1lID0gPyIKICAgICAgICAgICAgZGF0YWJhc2UgLT4gc2VjdXJpdHlDb21wb25lbnQgIlJldHVybnMgdXNlciBkYXRhIHRvIgogICAgICAgICAgICBzZWN1cml0eUNvbXBvbmVudCAtPiBzaWduaW5Db250cm9sbGVyICJSZXR1cm5zIHRydWUgaWYgdGhlIGhhc2hlZCBwYXNzd29yZCBtYXRjaGVzIgogICAgICAgICAgICBzaWduaW5Db250cm9sbGVyIC0+IHNpbmdsZVBhZ2VBcHBsaWNhdGlvbiAiU2VuZHMgYmFjayBhbiBhdXRoZW50aWNhdGlvbiB0b2tlbiB0byIKICAgICAgICAgICAvLyBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBkZXBsb3ltZW50IGludGVybmV0QmFua2luZ1N5c3RlbSAiRGV2ZWxvcG1lbnQiICJEZXZlbG9wbWVudERlcGxveW1lbnQiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGFuaW1hdGlvbiB7CiAgICAgICAgICAgICAgICBkZXZlbG9wZXJTaW5nbGVQYWdlQXBwbGljYXRpb25JbnN0YW5jZQogICAgICAgICAgICAgICAgZGV2ZWxvcGVyV2ViQXBwbGljYXRpb25JbnN0YW5jZSBkZXZlbG9wZXJBcGlBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBkZXZlbG9wZXJEYXRhYmFzZUluc3RhbmNlCiAgICAgICAgICAgIH0KICAgICAgICAgICAvLyBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBkZXBsb3ltZW50IGludGVybmV0QmFua2luZ1N5c3RlbSAiTGl2ZSIgIkxpdmVEZXBsb3ltZW50IiB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhbmltYXRpb24gewogICAgICAgICAgICAgICAgbGl2ZVNpbmdsZVBhZ2VBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBsaXZlTW9iaWxlQXBwSW5zdGFuY2UKICAgICAgICAgICAgICAgIGxpdmVXZWJBcHBsaWNhdGlvbkluc3RhbmNlIGxpdmVBcGlBcHBsaWNhdGlvbkluc3RhbmNlCiAgICAgICAgICAgICAgICBsaXZlUHJpbWFyeURhdGFiYXNlSW5zdGFuY2UKICAgICAgICAgICAgICAgIGxpdmVTZWNvbmRhcnlEYXRhYmFzZUluc3RhbmNlCiAgICAgICAgICAgIH0KICAgICAgICAgIC8vICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBzdHlsZXMgewogICAgICAgICAgICBlbGVtZW50ICJQZXJzb24iIHsKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgICAgIGZvbnRTaXplIDIyCiAgICAgICAgICAgICAgICBzaGFwZSBQZXJzb24KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDdXN0b21lciIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjMDg0MjdiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiQmFuayBTdGFmZiIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjOTk5OTk5CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiU29mdHdhcmUgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICMxMTY4YmQKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJFeGlzdGluZyBTeXN0ZW0iIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzk5OTk5OQogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkNvbnRhaW5lciIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNDM4ZGQ1CiAgICAgICAgICAgICAgICBjb2xvciAjZmZmZmZmCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiV2ViIEJyb3dzZXIiIHsKICAgICAgICAgICAgICAgIHNoYXBlIFdlYkJyb3dzZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJNb2JpbGUgQXBwIiB7CiAgICAgICAgICAgICAgICBzaGFwZSBNb2JpbGVEZXZpY2VMYW5kc2NhcGUKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJEYXRhYmFzZSIgewogICAgICAgICAgICAgICAgc2hhcGUgQ3lsaW5kZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDb21wb25lbnQiIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzg1YmJmMAogICAgICAgICAgICAgICAgY29sb3IgIzAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkZhaWxvdmVyIiB7CiAgICAgICAgICAgICAgICBvcGFjaXR5IDI1CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K"},"configuration":{},"model":{"enterprise":{"name":"Big Bank plc"},"people":[{"id":"1","tags":"Element,Person,Customer","properties":{"structurizr.dsl.identifier":"customer"},"name":"Personal Banking Customer","description":"A customer of the bank, with personal bank accounts.","relationships":[{"id":"19","tags":"Relationship","sourceId":"1","destinationId":"7","description":"Views account balances, and makes payments using"},{"id":"23","tags":"Relationship","sourceId":"1","destinationId":"2","description":"Asks questions to","technology":"Telephone"},{"id":"25","tags":"Relationship","sourceId":"1","destinationId":"6","description":"Withdraws cash using"},{"id":"28","tags":"Relationship","sourceId":"1","destinationId":"10","description":"Visits bigbank.com/ib using","technology":"HTTPS"},{"id":"29","tags":"Relationship","sourceId":"1","destinationId":"8","description":"Views account balances, and makes payments using"},{"id":"30","tags":"Relationship","sourceId":"1","destinationId":"9","description":"Views account balances, and makes payments using"}],"location":"External"},{"id":"2","tags":"Element,Person,Bank Staff","properties":{"structurizr.dsl.identifier":"supportstaff"},"name":"Customer Service Staff","description":"Customer service staff within the bank.","relationships":[{"id":"24","tags":"Relationship","sourceId":"2","destinationId":"4","description":"Uses"}],"location":"Internal"},{"id":"3","tags":"Element,Person,Bank Staff","properties":{"structurizr.dsl.identifier":"backoffice"},"name":"Back Office Staff","description":"Administration and support staff within the bank.","relationships":[{"id":"27","tags":"Relationship","sourceId":"3","destinationId":"4","description":"Uses"}],"location":"Internal"}],"softwareSystems":[{"id":"4","tags":"Element,Software System,Existing System","properties":{"structurizr.dsl.identifier":"mainframe"},"name":"Mainframe Banking System","description":"Stores all of the core banking information about customers, accounts, transactions, etc.","location":"Internal","documentation":{}},{"id":"5","tags":"Element,Software System,Existing System","properties":{"structurizr.dsl.identifier":"email"},"name":"E-mail System","description":"The internal Microsoft Exchange e-mail system.","relationships":[{"id":"22","tags":"Relationship","sourceId":"5","destinationId":"1","description":"Sends e-mails to"}],"location":"Internal","documentation":{}},{"id":"6","tags":"Element,Software System,Existing System","properties":{"structurizr.dsl.identifier":"atm"},"name":"ATM","description":"Allows customers to withdraw cash.","relationships":[{"id":"26","tags":"Relationship","sourceId":"6","destinationId":"4","description":"Uses"}],"location":"Internal","documentation":{}},{"id":"7","tags":"Element,Software System","properties":{"structurizr.dsl.identifier":"internetbankingsystem"},"name":"Internet Banking System","description":"Allows customers to view information about their bank accounts, and make payments.","relationships":[{"id":"20","tags":"Relationship","sourceId":"7","destinationId":"4","description":"Gets account information from, and makes payments using"},{"id":"21","tags":"Relationship","sourceId":"7","destinationId":"5","description":"Sends e-mail using"}],"location":"Internal","containers":[{"id":"11","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"apiapplication","apibook":"https://api.example.com/swagger-ui.html","dev":"dev@example.com","repository":"https://gitlab.example.com/big-bank-plc","runbook":"https://www.example.com/runbook.html"},"name":"API Application","description":"Provides Internet banking functionality via a JSON/HTTPS API.","relationships":[{"id":"45","sourceId":"11","destinationId":"18","description":"Reads from and writes to","technology":"JDBC","linkedRelationshipId":"44"},{"id":"47","sourceId":"11","destinationId":"4","description":"Makes API calls to","technology":"XML/HTTPS","linkedRelationshipId":"46"},{"id":"49","sourceId":"11","destinationId":"5","description":"Sends e-mail using","linkedRelationshipId":"48"}],"technology":"Java and Spring MVC","components":[{"id":"15","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"securitycomponent"},"name":"Security Component","description":"Provides functionality related to signing in, changing passwords, etc.","relationships":[{"id":"44","tags":"Relationship","sourceId":"15","destinationId":"18","description":"Reads from and writes to","technology":"JDBC"}],"technology":"Spring Bean","documentation":{}},{"id":"14","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"resetpasswordcontroller"},"name":"Reset Password Controller","description":"Allows users to reset their passwords with a single use URL.","relationships":[{"id":"42","tags":"Relationship","sourceId":"14","destinationId":"15","description":"Uses"},{"id":"43","tags":"Relationship","sourceId":"14","destinationId":"17","description":"Uses"}],"technology":"Spring MVC Rest Controller","documentation":{}},{"id":"16","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"mainframebankingsystemfacade"},"name":"Mainframe Banking System Facade","description":"A facade onto the mainframe banking system.","relationships":[{"id":"46","tags":"Relationship","sourceId":"16","destinationId":"4","description":"Makes API calls to","technology":"XML/HTTPS"}],"technology":"Spring Bean","documentation":{}},{"id":"12","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"signincontroller"},"name":"Sign In Controller","description":"Allows users to sign in to the Internet Banking System.","relationships":[{"id":"40","tags":"Relationship","sourceId":"12","destinationId":"15","description":"Uses"}],"technology":"Spring MVC Rest Controller","documentation":{}},{"id":"17","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"emailcomponent"},"name":"E-mail Component","description":"Sends e-mails to users.","relationships":[{"id":"48","tags":"Relationship","sourceId":"17","destinationId":"5","description":"Sends e-mail using"}],"technology":"Spring Bean","documentation":{}},{"id":"13","tags":"Element,Component","properties":{"structurizr.dsl.identifier":"accountssummarycontroller"},"name":"Accounts Summary Controller","description":"Provides customers with a summary of their bank accounts.","relationships":[{"id":"41","tags":"Relationship","sourceId":"13","destinationId":"16","description":"Uses"}],"technology":"Spring MVC Rest Controller","documentation":{}}],"documentation":{}},{"id":"18","tags":"Element,Container,Database","properties":{"structurizr.dsl.identifier":"database"},"name":"Database","description":"Stores user registration information, hashed authentication credentials, access logs, etc.","technology":"Oracle Database Schema","documentation":{}},{"id":"10","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"webapplication"},"name":"Web Application","description":"Delivers the static content and the Internet banking single page application.","relationships":[{"id":"31","tags":"Relationship","sourceId":"10","destinationId":"8","description":"Delivers to the customer's web browser"}],"technology":"Java and Spring MVC","documentation":{}},{"id":"8","tags":"Element,Container,Web Browser","properties":{"structurizr.dsl.identifier":"singlepageapplication"},"name":"Single-Page Application","description":"Provides all of the Internet banking functionality to customers via their web browser.","relationships":[{"id":"32","tags":"Relationship","sourceId":"8","destinationId":"12","description":"Makes API calls to","technology":"JSON/HTTPS"},{"id":"33","sourceId":"8","destinationId":"11","description":"Makes API calls to","technology":"JSON/HTTPS","linkedRelationshipId":"32"},{"id":"34","tags":"Relationship","sourceId":"8","destinationId":"13","description":"Makes API calls to","technology":"JSON/HTTPS"},{"id":"35","tags":"Relationship","sourceId":"8","destinationId":"14","description":"Makes API calls to","technology":"JSON/HTTPS"}],"technology":"JavaScript and Angular","documentation":{}},{"id":"9","tags":"Element,Container,Mobile App","properties":{"structurizr.dsl.identifier":"mobileapp"},"name":"Mobile App","description":"Provides a limited subset of the Internet banking functionality to customers via their mobile device.","relationships":[{"id":"36","tags":"Relationship","sourceId":"9","destinationId":"12","description":"Makes API calls to","technology":"JSON/HTTPS"},{"id":"37","sourceId":"9","destinationId":"11","description":"Makes API calls to","technology":"JSON/HTTPS","linkedRelationshipId":"36"},{"id":"38","tags":"Relationship","sourceId":"9","destinationId":"13","description":"Makes API calls to","technology":"JSON/HTTPS"},{"id":"39","tags":"Relationship","sourceId":"9","destinationId":"14","description":"Makes API calls to","technology":"JSON/HTTPS"}],"technology":"Xamarin","documentation":{}}],"documentation":{}}],"deploymentNodes":[{"id":"50","tags":"Element,Deployment Node","name":"Developer Laptop","environment":"Development","technology":"Microsoft Windows 10 or Apple macOS","instances":"1","children":[{"id":"53","tags":"Element,Deployment Node","name":"Docker Container - Web Server","environment":"Development","technology":"Docker","instances":"1","children":[{"id":"54","tags":"Element,Deployment Node","name":"Apache Tomcat","environment":"Development","technology":"Apache Tomcat 8.x","instances":"1","containerInstances":[{"id":"57","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"developerapiapplicationinstance"},"relationships":[{"id":"62","sourceId":"57","destinationId":"61","description":"Reads from and writes to","technology":"JDBC","linkedRelationshipId":"45"},{"id":"66","sourceId":"57","destinationId":"65","description":"Makes API calls to","technology":"XML/HTTPS","linkedRelationshipId":"47"}],"environment":"Development","deploymentGroups":["Default"],"instanceId":1,"containerId":"11"},{"id":"55","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"developerwebapplicationinstance"},"relationships":[{"id":"56","sourceId":"55","destinationId":"52","description":"Delivers to the customer's web browser","linkedRelationshipId":"31"}],"environment":"Development","deploymentGroups":["Default"],"instanceId":1,"containerId":"10"}]}]},{"id":"59","tags":"Element,Deployment Node","name":"Docker Container - Database Server","environment":"Development","technology":"Docker","instances":"1","children":[{"id":"60","tags":"Element,Deployment Node","name":"Database Server","environment":"Development","technology":"Oracle 12c","instances":"1","containerInstances":[{"id":"61","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"developerdatabaseinstance"},"environment":"Development","deploymentGroups":["Default"],"instanceId":1,"containerId":"18"}]}]},{"id":"51","tags":"Element,Deployment Node","name":"Web Browser","environment":"Development","technology":"Chrome, Firefox, Safari, or Edge","instances":"1","containerInstances":[{"id":"52","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"developersinglepageapplicationinstance"},"relationships":[{"id":"58","sourceId":"52","destinationId":"57","description":"Makes API calls to","technology":"JSON/HTTPS","linkedRelationshipId":"33"}],"environment":"Development","deploymentGroups":["Default"],"instanceId":1,"containerId":"8"}]}]},{"id":"63","tags":"Element,Deployment Node,","name":"Big Bank plc","environment":"Development","technology":"Big Bank plc data center","instances":"1","children":[{"id":"64","tags":"Element,Deployment Node,","name":"bigbank-dev001","environment":"Development","instances":"1","softwareSystemInstances":[{"id":"65","tags":"Software System Instance","environment":"Development","deploymentGroups":["Default"],"instanceId":1,"softwareSystemId":"4"}]}]},{"id":"67","tags":"Element,Deployment Node","name":"Customer's mobile device","environment":"Live","technology":"Apple iOS or Android","instances":"1","containerInstances":[{"id":"68","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"livemobileappinstance"},"relationships":[{"id":"80","sourceId":"68","destinationId":"79","description":"Makes API calls to","technology":"JSON/HTTPS","linkedRelationshipId":"37"}],"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"9"}]},{"id":"69","tags":"Element,Deployment Node","name":"Customer's computer","environment":"Live","technology":"Microsoft Windows or Apple macOS","instances":"1","children":[{"id":"70","tags":"Element,Deployment Node","name":"Web Browser","environment":"Live","technology":"Chrome, Firefox, Safari, or Edge","instances":"1","containerInstances":[{"id":"71","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"livesinglepageapplicationinstance"},"relationships":[{"id":"81","sourceId":"71","destinationId":"79","description":"Makes API calls to","technology":"JSON/HTTPS","linkedRelationshipId":"33"}],"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"8"}]}]},{"id":"72","tags":"Element,Deployment Node","name":"Big Bank plc","environment":"Live","technology":"Big Bank plc data center","instances":"1","children":[{"id":"82","tags":"Element,Deployment Node","name":"bigbank-db01","environment":"Live","technology":"Ubuntu 16.04 LTS","instances":"1","children":[{"id":"83","tags":"Element,Deployment Node","properties":{"structurizr.dsl.identifier":"primarydatabaseserver"},"name":"Oracle - Primary","relationships":[{"id":"93","tags":"Relationship","sourceId":"83","destinationId":"87","description":"Replicates data to"}],"environment":"Live","technology":"Oracle 12c","instances":"1","containerInstances":[{"id":"84","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"liveprimarydatabaseinstance"},"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"18"}]}]},{"id":"73","tags":"Element,Deployment Node,","name":"bigbank-web***","environment":"Live","technology":"Ubuntu 16.04 LTS","instances":"4","children":[{"id":"74","tags":"Element,Deployment Node","name":"Apache Tomcat","environment":"Live","technology":"Apache Tomcat 8.x","instances":"1","containerInstances":[{"id":"75","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"livewebapplicationinstance"},"relationships":[{"id":"76","sourceId":"75","destinationId":"71","description":"Delivers to the customer's web browser","linkedRelationshipId":"31"}],"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"10"}]}]},{"id":"90","tags":"Element,Deployment Node,","name":"bigbank-prod001","environment":"Live","instances":"1","softwareSystemInstances":[{"id":"91","tags":"Software System Instance","environment":"Live","deploymentGroups":["Default"],"instanceId":1,"softwareSystemId":"4"}]},{"id":"77","tags":"Element,Deployment Node,","name":"bigbank-api***","environment":"Live","technology":"Ubuntu 16.04 LTS","instances":"8","children":[{"id":"78","tags":"Element,Deployment Node","name":"Apache Tomcat","environment":"Live","technology":"Apache Tomcat 8.x","instances":"1","containerInstances":[{"id":"79","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"liveapiapplicationinstance"},"relationships":[{"id":"85","sourceId":"79","destinationId":"84","description":"Reads from and writes to","technology":"JDBC","linkedRelationshipId":"45"},{"id":"89","sourceId":"79","destinationId":"88","description":"Reads from and writes to","technology":"JDBC","linkedRelationshipId":"45"},{"id":"92","sourceId":"79","destinationId":"91","description":"Makes API calls to","technology":"XML/HTTPS","linkedRelationshipId":"47"}],"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"11"}]}]},{"id":"86","tags":"Element,Deployment Node,Failover","name":"bigbank-db02","environment":"Live","technology":"Ubuntu 16.04 LTS","instances":"1","children":[{"id":"87","tags":"Element,Deployment Node,Failover","properties":{"structurizr.dsl.identifier":"secondarydatabaseserver"},"name":"Oracle - Secondary","environment":"Live","technology":"Oracle 12c","instances":"1","containerInstances":[{"id":"88","tags":"Container Instance","properties":{"structurizr.dsl.identifier":"livesecondarydatabaseinstance"},"environment":"Live","deploymentGroups":["Default"],"instanceId":1,"containerId":"18"}]}]}]}]},"documentation":{},"views":{"systemLandscapeViews":[{"key":"SystemLandscape","order":1,"dimensions":{"width":3262,"height":2139},"enterpriseBoundaryVisible":true,"elements":[{"id":"1","x":693,"y":200},{"id":"2","x":1941,"y":848},{"id":"3","x":2641,"y":848},{"id":"4","x":1554,"y":1548},{"id":"5","x":441,"y":1548},{"id":"6","x":1191,"y":898},{"id":"7","x":441,"y":898}],"relationships":[{"id":"27"},{"id":"26"},{"id":"25"},{"id":"24"},{"id":"23","vertices":[{"x":1791,"y":744}]},{"id":"22","vertices":[{"x":291,"y":1248},{"x":291,"y":744}]},{"id":"21"},{"id":"20"},{"id":"19"}],"type":"SystemLandscape","description":"","animations":[]}],"systemContextViews":[{"key":"SystemContext","order":2,"softwareSystemId":"7","dimensions":{"width":1932,"height":2020},"animations":[{"order":1,"elements":["7"],"relationships":[]},{"order":2,"elements":["1"],"relationships":["19"]},{"order":3,"elements":["4"],"relationships":["20"]},{"order":4,"elements":["5"],"relationships":["22","21"]}],"enterpriseBoundaryVisible":true,"elements":[{"id":"1","x":1331,"y":1420},{"id":"4","x":219,"y":820},{"id":"5","x":969,"y":820},{"id":"7","x":969,"y":220}],"relationships":[{"id":"22"},{"id":"21"},{"id":"20"},{"id":"19","vertices":[{"x":1569,"y":1224},{"x":1569,"y":820}]}],"type":"SystemContext","description":""}],"containerViews":[{"key":"Containers","order":3,"softwareSystemId":"7","dimensions":{"width":2280,"height":2695},"animations":[{"order":1,"elements":["1","4","5"],"relationships":["22"]},{"order":2,"elements":["10"],"relationships":["28"]},{"order":3,"elements":["8"],"relationships":["29","31"]},{"order":4,"elements":["9"],"relationships":["30"]},{"order":5,"elements":["11"],"relationships":["33","47","37","49"]},{"order":6,"elements":["18"],"relationships":["45"]}],"externalSoftwareSystemBoundariesVisible":true,"elements":[{"id":"11","x":969,"y":1504},{"id":"1","x":1654,"y":200},{"id":"4","x":1629,"y":2104},{"id":"5","x":1629,"y":1465},{"id":"18","x":969,"y":2104},{"id":"8","x":219,"y":904},{"id":"9","x":969,"y":904},{"id":"10","x":548,"y":254}],"relationships":[{"id":"29","vertices":[{"x":1598,"y":604},{"x":819,"y":904}]},{"id":"28","vertices":[{"x":1476,"y":404},{"x":1124,"y":404}]},{"id":"37"},{"id":"22"},{"id":"33"},{"id":"45"},{"id":"31"},{"id":"30"},{"id":"47"},{"id":"49"}],"type":"Container","description":""}],"componentViews":[{"key":"Components","order":4,"paperSize":"A3_Landscape","dimensions":{"width":2608,"height":2516},"animations":[{"order":1,"elements":["4","5","18","8","9"],"relationships":[]},{"order":2,"elements":["12","15"],"relationships":["44","36","40","32"]},{"order":3,"elements":["13","16"],"relationships":["34","46","38","41"]},{"order":4,"elements":["14","17"],"relationships":["35","48","39","42","43"]}],"containerId":"11","externalContainerBoundariesVisible":true,"elements":[{"id":"12","x":329,"y":808},{"id":"13","x":1829,"y":808},{"id":"14","x":1079,"y":808},{"id":"15","x":329,"y":1408},{"id":"4","x":1829,"y":2008},{"id":"16","x":1829,"y":1408},{"id":"5","x":1079,"y":2008},{"id":"17","x":1079,"y":1408},{"id":"18","x":329,"y":2008},{"id":"8","x":704,"y":208},{"id":"9","x":1454,"y":208}],"relationships":[{"id":"40"},{"id":"41"},{"id":"42"},{"id":"43"},{"id":"32"},{"id":"36","vertices":[{"x":929,"y":704}]},{"id":"35"},{"id":"34","vertices":[{"x":1679,"y":704}]},{"id":"44"},{"id":"46"},{"id":"48"},{"id":"38"},{"id":"39"}],"type":"Component","description":""}],"dynamicViews":[{"key":"SignIn","order":5,"description":"Summarises how the sign in feature works in the single-page application.","dimensions":{"width":1620,"height":1920},"elementId":"11","externalBoundariesVisible":true,"relationships":[{"id":"32","description":"Submits credentials to","order":"1","response":false,"vertices":[{"x":913,"y":552}]},{"id":"40","description":"Validates credentials using","order":"2","response":false,"vertices":[{"x":295,"y":670}]},{"id":"44","description":"select * from users where username = ?","order":"3","response":false,"vertices":[{"x":295,"y":1270}]},{"id":"44","description":"Returns user data to","order":"4","response":true,"vertices":[{"x":595,"y":1270}]},{"id":"40","description":"Returns true if the hashed password matches","order":"5","response":true,"vertices":[{"x":595,"y":670}]},{"id":"32","description":"Sends back an authentication token to","order":"6","response":true,"vertices":[{"x":726,"y":787}]}],"elements":[{"id":"12","x":220,"y":220},{"id":"15","x":220,"y":820},{"id":"18","x":220,"y":1420},{"id":"8","x":970,"y":820}],"type":"Dynamic"}],"deploymentViews":[{"key":"DevelopmentDeployment","order":6,"softwareSystemId":"7","dimensions":{"width":2717,"height":1900},"environment":"Development","animations":[{"order":1,"elements":["50","51","52"],"relationships":[]},{"order":2,"elements":["55","57","53","54"],"relationships":["56","58"]},{"order":3,"elements":["59","60","61"],"relationships":["62"]}],"elements":[{"id":"55","x":272,"y":259},{"id":"57","x":1022,"y":259},{"id":"59","x":350,"y":350},{"id":"60","x":350,"y":350},{"id":"61","x":259,"y":1126},{"id":"50","x":350,"y":350},{"id":"51","x":350,"y":350},{"id":"52","x":1126,"y":1126},{"id":"63","x":350,"y":350},{"id":"53","x":350,"y":350},{"id":"64","x":350,"y":350},{"id":"54","x":350,"y":350},{"id":"65","x":2026,"y":1126}],"relationships":[{"id":"62"},{"id":"56","vertices":[{"x":888,"y":801}]},{"id":"66","vertices":[{"x":1755,"y":801}]},{"id":"58"}],"type":"Deployment","description":""},{"key":"LiveDeployment","order":7,"softwareSystemId":"7","dimensions":{"width":2025,"height":3775},"environment":"Live","animations":[{"order":1,"elements":["69","70","71"],"relationships":[]},{"order":2,"elements":["67","68"],"relationships":[]},{"order":3,"elements":["77","78","79","72","73","74","75"],"relationships":["80","81","76"]},{"order":4,"elements":["82","83","84"],"relationships":["85"]},{"order":5,"elements":["88","86","87"],"relationships":["89","93"]}],"elements":[{"id":"77","x":350,"y":350},{"id":"88","x":1211,"y":3001},{"id":"67","x":350,"y":350},{"id":"78","x":350,"y":350},{"id":"68","x":344,"y":239},{"id":"79","x":344,"y":1268},{"id":"69","x":350,"y":350},{"id":"90","x":350,"y":350},{"id":"91","x":240,"y":2134},{"id":"70","x":350,"y":350},{"id":"71","x":1227,"y":239},{"id":"82","x":350,"y":350},{"id":"83","x":350,"y":350},{"id":"72","x":350,"y":350},{"id":"84","x":1107,"y":2134},{"id":"73","x":350,"y":350},{"id":"74","x":350,"y":350},{"id":"75","x":1315,"y":1268},{"id":"86","x":350,"y":350},{"id":"87","x":350,"y":350}],"relationships":[{"id":"93"},{"id":"80"},{"id":"92"},{"id":"81"},{"id":"76"},{"id":"85"},{"id":"89","vertices":[{"x":1136,"y":1776},{"x":1736,"y":1809},{"x":1736,"y":2643}]}],"type":"Deployment","description":""}],"configuration":{"branding":{},"styles":{"elements":[{"tag":"Person","color":"#ffffff","fontSize":22,"shape":"Person"},{"tag":"Customer","background":"#08427b"},{"tag":"Bank Staff","background":"#999999"},{"tag":"Software System","background":"#1168bd","color":"#ffffff"},{"tag":"Existing System","background":"#999999","color":"#ffffff"},{"tag":"Container","background":"#438dd5","color":"#ffffff"},{"tag":"Web Browser","shape":"WebBrowser"},{"tag":"Mobile App","shape":"MobileDeviceLandscape"},{"tag":"Database","shape":"Cylinder"},{"tag":"Component","background":"#85bbf0","color":"#000000"},{"tag":"Failover","opacity":25}],"relationships":[]},"terminology":{},"lastSavedView":"Containers","properties":{},"metadataSymbols":"SquareBrackets","themes":[]},"customViews":[],"filteredViews":[],"imageViews":[]},"lastModifiedAgent":"structurizr-onpremises/diagrams/62d72a5a-855f-44b4-b179-0c52cd1fee64","lastModifiedUser":"hongtao_huang@foxitsoftware.com"}