@ -0,0 +1,3 @@ |
|||
# সম্পর্কে |
|||
|
|||
**FastAPI** সম্পর্কে বিস্তারিত — এর ডিজাইন, অনুপ্রেরণা ও আরও অনেক কিছু। 🤓 |
@ -0,0 +1,298 @@ |
|||
# এনভায়রনমেন্ট ভেরিয়েবলস |
|||
|
|||
/// tip |
|||
|
|||
আপনি যদি "এনভায়রনমেন্ট ভেরিয়েবলস" কী এবং সেগুলো কীভাবে ব্যবহার করতে হয় সেটা জানেন, তাহলে এই অংশটি স্কিপ করে যেতে পারেন। |
|||
|
|||
/// |
|||
|
|||
এনভায়রনমেন্ট ভেরিয়েবল (সংক্ষেপে "**env var**" নামেও পরিচিত) হলো এমন একটি ভেরিয়েবল যা পাইথন কোডের **বাইরে**, **অপারেটিং সিস্টেমে** থাকে এবং আপনার পাইথন কোড (বা অন্যান্য প্রোগ্রাম) দ্বারা যাকে রিড করা যায়। |
|||
|
|||
এনভায়রনমেন্ট ভেরিয়েবলস অ্যাপ্লিকেশনের **সেটিংস** পরিচালনা করতে, পাইথনের **ইনস্টলেশন** প্রক্রিয়ার অংশ হিসেবে, ইত্যাদি কাজে উপযোগী হতে পারে। |
|||
|
|||
## Env Vars তৈরী এবং ব্যবহার |
|||
|
|||
আপনি **শেল (টার্মিনাল)**-এ, পাইথনের প্রয়োজন ছাড়াই, এনভায়রনমেন্ট ভেরিয়েবলস **তৈরি** এবং ব্যবহার করতে পারবেনঃ |
|||
|
|||
//// tab | লিনাক্স, ম্যাকওএস, উইন্ডোজ Bash |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
// আপনি চাইলে MY_NAME নামে একটি env var তৈরি করতে পারেন |
|||
$ export MY_NAME="Wade Wilson" |
|||
|
|||
// তারপরে এটিকে চাইলে অন্যান্য প্রোগ্রামে ব্যবহার করতে পারেন |
|||
$ echo "Hello $MY_NAME" |
|||
|
|||
Hello Wade Wilson |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
//// tab | উইন্ডোজ পাওয়ারশেল |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
// MY_NAME নামে env var তৈরি |
|||
$ $Env:MY_NAME = "Wade Wilson" |
|||
|
|||
// অন্যান্য প্রোগ্রামে এটিকে ব্যবহার |
|||
$ echo "Hello $Env:MY_NAME" |
|||
|
|||
Hello Wade Wilson |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
## পাইথনে env vars রিড করা |
|||
|
|||
আপনি চাইলে পাইথনের **বাইরে**, টার্মিনালে (বা অন্য কোনো উপায়ে) এনভায়রনমেন্ট ভেরিয়েবলস তৈরি করতে পারেন, এবং পরে সেগুলো **পাইথনে রিড** (অ্যাক্সেস করতে) পারেন। |
|||
|
|||
উদাহরণস্বরূপ, আপনার `main.py` নামে একটি ফাইল থাকতে পারেঃ |
|||
|
|||
```Python hl_lines="3" |
|||
import os |
|||
|
|||
name = os.getenv("MY_NAME", "World") |
|||
print(f"Hello {name} from Python") |
|||
``` |
|||
|
|||
/// tip |
|||
|
|||
<a href="https://docs.python.org/3.8/library/os.html#os.getenv" class="external-link" target="_blank">`os.getenv()`</a> এর দ্বিতীয় আর্গুমেন্টটি হলো এর ডিফল্ট ভ্যালু যা রিটার্ন করা হবে। |
|||
|
|||
যদি এটি দেওয়া না হয়, ডিফল্টভাবে `None` ব্যবহৃত হবে, এখানে আমরা ডিফল্ট ভ্যালু হিসেবে `"World"` ব্যবহার করেছি। |
|||
|
|||
/// |
|||
|
|||
তারপরে পাইথন প্রোগ্রামটিকে নিম্নোক্তভাবে কল করা যাবেঃ |
|||
|
|||
//// tab | লিনাক্স, ম্যাকওএস, উইন্ডোজ Bash |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
// এখনো আমরা এনভায়রনমেন্ট ভেরিয়েবল সেট করিনি |
|||
$ python main.py |
|||
|
|||
// যেহেতু env var সেট করা হয়নি, তাই আমরা ডিফল্ট ভ্যালু পাচ্ছি |
|||
|
|||
Hello World from Python |
|||
|
|||
// কিন্তু আমরা প্রথমে যদি একটা এনভায়রনমেন্ট ভারিয়েবল তৈরি করে নেই |
|||
$ export MY_NAME="Wade Wilson" |
|||
|
|||
// এবং তারপর আবার প্রোগ্রাটিকে কল করি |
|||
$ python main.py |
|||
|
|||
// এখন এটি এনভায়রনমেন্ট ভেরিয়েবল রিড করতে পারবে |
|||
|
|||
Hello Wade Wilson from Python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
//// tab | উইন্ডোজ পাওয়ারশেল |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
// এখনো আমরা এনভায়রনমেন্ট ভেরিয়েবল সেট করিনি |
|||
$ python main.py |
|||
|
|||
// যেহেতু env var সেট করা হয়নি, তাই আমরা ডিফল্ট ভ্যালু পাচ্ছি |
|||
|
|||
Hello World from Python |
|||
|
|||
// কিন্তু আমরা প্রথমে যদি একটা এনভায়রনমেন্ট ভারিয়েবল তৈরি করে নেই |
|||
$ $Env:MY_NAME = "Wade Wilson" |
|||
|
|||
// এবং তারপর আবার প্রোগ্রাটিকে কল করি |
|||
$ python main.py |
|||
|
|||
// এখন এটি এনভায়রনমেন্ট ভেরিয়েবল রিড করতে পারবে |
|||
|
|||
Hello Wade Wilson from Python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
যেহেতু এনভায়রনমেন্ট ভেরিয়েবলস কোডের বাইরে সেট করা যায়, কিন্তু পরবর্তীতে কোড দ্বারা রিড করা যায়, এবং বাকি ফাইলগুলোর সাথে রাখতে (`git` এ কমিট) হয় না, তাই কনফিগারেশনস বা **সেটিংস** এর জন্য এগুলো সাধারণত ব্যবহৃত হয়ে থাকে। |
|||
|
|||
আপনি একটি এনভায়রনমেন্ট ভেরিয়েবল শুধুমাত্র একটি **নির্দিষ্ট প্রোগ্রাম ইনভোকেশনের** জন্যও তৈরি করতে পারেন, যা শুধুমাত্র সেই প্রোগ্রামের জন্যই এভেইলেবল থাকবে এবং শুধুমাত্র তার চলাকালীন সময় পর্যন্তই সক্রিয় থাকবে। |
|||
|
|||
এটি করতে, প্রোগ্রামটি রান করার ঠিক আগেই, একই লাইনে এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
// প্রোগ্রামটি কল করার সময় একই লাইনে MY_NAME এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন |
|||
$ MY_NAME="Wade Wilson" python main.py |
|||
|
|||
// এখন এটি এনভায়রনমেন্ট ভ্যরিয়েবলটিকে রিড করতে পারবে |
|||
|
|||
Hello Wade Wilson from Python |
|||
|
|||
// পরবর্তীতে এনভায়রনমেন্ট ভেরিয়েবলটিকে আর ব্যবহার করা যাচ্ছে না |
|||
$ python main.py |
|||
|
|||
Hello World from Python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
/// tip |
|||
|
|||
এটি নিয়ে আরো বিস্তারিত পড়তে পারেন এখানে <a href="https://12factor.net/config" class="external-link" target="_blank">The Twelve-Factor App: Config</a>। |
|||
|
|||
/// |
|||
|
|||
## টাইপস এবং ভ্যালিডেশন |
|||
|
|||
এই এনভায়রনমেন্ট ভেরিয়েবলগুলো শুধুমাত্র **টেক্সট স্ট্রিংস** হ্যান্ডেল করতে পারে, যেহেতু এগুলো পাইথনের বাইরে অবস্থিত এবং অন্যান্য প্রোগ্রাম এবং সিস্টেমের বাকি অংশের (এমনকি বিভিন্ন অপারেটিং সিস্টেম যেমন লিনাক্স, উইন্ডোজ, ম্যাকওএস) সাথে সামঞ্জস্যপূর্ণ হতে হয়। |
|||
|
|||
এর অর্থ হচ্ছে পাইথনে এনভায়রনমেন্ট ভেরিয়েবল থেকে রিড করা **যেকোনো ভ্যালু** একটি `str` হবে, এবং অন্য কোনো টাইপে কনভার্সন বা যেকোনো ভেলিডেশন কোডে আলাদাভাবে করতে হবে। |
|||
|
|||
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে **এপ্লিকেশন সেটিংস** হ্যান্ডেল করা নিয়ে আরো বিস্তারিত জানা যাবে [Advanced User Guide - Settings and Environment Variables](./advanced/settings.md){.internal-link target=_blank}. |
|||
|
|||
## `PATH` এনভায়রনমেন্ট ভেরিয়েবল |
|||
|
|||
**`PATH`** নামে একটি **বিশেষ** এনভায়রনমেন্ট ভেরিয়েবল রয়েছে, যেটি প্রোগ্রাম রান করার জন্য অপারেটিং সিস্টেমস (লিনাক্স, ম্যাকওএস, উইন্ডোজ) দ্বারা ব্যবহৃত হয়। |
|||
|
|||
`PATH` ভেরিয়েবল এর ভ্যালু হচ্ছে একটি বিশাল স্ট্রিং যা ডিরেক্টরিকে কোলন `:` দিয়ে আলাদা করার মাধ্যমে লিনাক্সে ও ম্যাকওএস এ, এবং সেমিকোলন `;` এর মাধ্যমে উইন্ডোজ এ তৈরি করা থাকে। |
|||
|
|||
উদাহরণস্বরূপ, `PATH` ভেরিয়েবল নিচের মতো দেখতে হতে পারেঃ |
|||
|
|||
//// tab | লিনাক্স, ম্যাকওএস |
|||
|
|||
```plaintext |
|||
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin |
|||
``` |
|||
|
|||
তারমানে হলো সিস্টেম প্রোগ্রামগুলোকে নিচের ডিরেক্টরিগুলোতে খুঁজবেঃ |
|||
|
|||
* `/usr/local/bin` |
|||
* `/usr/bin` |
|||
* `/bin` |
|||
* `/usr/sbin` |
|||
* `/sbin` |
|||
|
|||
//// |
|||
|
|||
//// tab | উইন্ডোজ |
|||
|
|||
```plaintext |
|||
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32 |
|||
``` |
|||
|
|||
তারমানে হলো সিস্টেম প্রোগ্রামগুলোকে নিচের ডিরেক্টরিগুলোতে খুঁজবেঃ |
|||
|
|||
* `C:\Program Files\Python312\Scripts` |
|||
* `C:\Program Files\Python312` |
|||
* `C:\Windows\System32` |
|||
|
|||
//// |
|||
|
|||
যখন আপনি টার্মিনালে কোনো **কমান্ড** লিখবেন, অপারেটিং সিস্টেম **প্রত্যেকটি ডিরেক্টরিতে** প্রোগ্রামটি **খুঁজবে** যেগুলো `PATH` এনভায়রনমেন্ট ভেরিয়েবল এ লিস্ট করা আছে। |
|||
|
|||
উদাহরণস্বরূপ, যখন আপনি টার্মিনালে `python` টাইপ করবেন, অপারেটিং সিস্টেম এই লিস্ট এর **প্রথম ডিরেক্টরিতে** `python` নামের একটি প্রোগ্রাম খুঁজবে। |
|||
|
|||
যদি এটি খুঁজে পায়, তাহলে এটি প্রোগ্রামটিকে ব্যবহার করবে। অন্যথায় এটি **অন্যান্য ডিরেক্টরিগুলোতে** এটিকে খুঁজতে থাকবে। |
|||
|
|||
### পাইথন ইনস্টল এবং `PATH` আপডেট |
|||
|
|||
যখন আপনি পাইথন ইনস্টল করেন, আপনি `PATH` এনভায়রনমেন্ট ভেরিয়েবল আপডেট করতে চান কিনা সেটা জিজ্ঞেস করা হতে পারে। |
|||
|
|||
//// tab | লিনাক্স, ম্যাকওএস |
|||
|
|||
ধরা যাক আপনি পাইথন ইনস্টল করলেন এবং এটি `/opt/custompython/bin` ডিরেক্টরিতে ইনস্টল হচ্ছে। |
|||
|
|||
যদি আপনি "Yes" সিলেক্ট করে `PATH` এনভায়রনমেন্ট ভেরিয়েবল আপডেট করতে চান, তাহলে ইনস্টলার `/opt/custompython/bin` কে `PATH` এনভায়রনমেন্ট ভেরিয়েবল এ এড করে দিবে। |
|||
|
|||
এটা দেখতে এমনটা হতে পারেঃ |
|||
|
|||
```plaintext |
|||
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin |
|||
``` |
|||
|
|||
এইভাবে, আপনি যখন টার্মিনালে `python` টাইপ করেন, সিস্টেম পাইথন প্রোগ্রামটিকে `/opt/custompython/bin` (সর্বশেষ ডিরেক্টরি) তে খুঁজে পাবে এবং এটাকে ব্যবহার করবে। |
|||
|
|||
//// |
|||
|
|||
//// tab | উইন্ডোজ |
|||
|
|||
ধরা যাক আপনি পাইথন ইনস্টল করলেন এবং এটি `C:\opt\custompython\bin` ডিরেক্টরিতে ইনস্টল হচ্ছে। |
|||
|
|||
যদি আপনি "Yes" সিলেক্ট করে `PATH` এনভায়রনমেন্ট ভেরিয়েবল আপডেট করতে চান, তাহলে ইনস্টলার `C:\opt\custompython\bin` কে `PATH` এনভায়রনমেন্ট ভেরিয়েবল এ এড করে দিবে। |
|||
|
|||
```plaintext |
|||
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin |
|||
``` |
|||
|
|||
এইভাবে, আপনি যখন টার্মিনালে `python` টাইপ করেন, সিস্টেম পাইথন প্রোগ্রামটিকে `C:\opt\custompython\bin` (সর্বশেষ ডিরেক্টরি) তে খুঁজে পাবে এবং এটাকে ব্যবহার করবে। |
|||
|
|||
//// |
|||
|
|||
তাই, আপনি যদি টাইপ করেনঃ |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// tab | লিনাক্স, ম্যাকওএস |
|||
|
|||
সিস্টেম `python` প্রোগ্রামকে `/opt/custompython/bin` এ **খুঁজে পাবে** এবং এটাকে রান করবে। |
|||
|
|||
এটা মোটামুটিভাবে নিচের মতো করে লেখার সমান হবেঃ |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ /opt/custompython/bin/python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
//// tab | উইন্ডোজ |
|||
|
|||
সিস্টেম `python` প্রোগ্রামকে `C:\opt\custompython\bin\python` এ **খুঁজে পাবে** এবং এটাকে রান করবে। |
|||
|
|||
এটা মোটামুটিভাবে নিচের মতো করে লেখার সমান হবেঃ |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ C:\opt\custompython\bin\python |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
//// |
|||
|
|||
এই তথ্যগুলো [ভার্চুয়াল এনভায়রনমেন্টস](virtual-environments.md){.internal-link target=_blank} শেখার ক্ষেত্রে সহায়ক হবে। |
|||
|
|||
## উপসংহার |
|||
|
|||
এর মাধ্যমে আপনি **এনভায়রনমেন্ট ভেরিয়েবলস** কি এবং এটিকে পাইথনে কিভাবে ব্যবহার করতে হয় তার সম্পর্কে বেসিক ধারনা পেলেন। |
|||
|
|||
চাইলে এই সম্পর্কে আরো বিস্তারিত পড়তে পারেন <a href="https://en.wikipedia.org/wiki/Environment_variable" class="external-link" target="_blank">Wikipedia for Environment Variable</a> এ। |
|||
|
|||
অনেক ক্ষেত্রে, দেখা মাত্রই এনভায়রনমেন্ট ভেরিয়েবল কীভাবে প্রয়োজন হবে তা স্পষ্ট হয় না। কিন্তু ডেভেলপমেন্টের সময় আপনি নানা রকম পরিস্থিতিতে এগুলোর সম্মুখীন হবেন, তাই এগুলো সম্পর্কে জেনে রাখা ভালো। |
|||
|
|||
উদাহরণস্বরূপ, আপনার এই ইনফরমেশনটি পরবর্তী, [ভার্চুয়াল এনভায়রনমেন্টস](virtual-environments.md) অংশে দরকার হবে। |
@ -1,495 +1,495 @@ |
|||
- name: full-stack-fastapi-template |
|||
html_url: https://github.com/fastapi/full-stack-fastapi-template |
|||
stars: 30645 |
|||
stars: 34156 |
|||
owner_login: fastapi |
|||
owner_html_url: https://github.com/fastapi |
|||
- name: Hello-Python |
|||
html_url: https://github.com/mouredev/Hello-Python |
|||
stars: 28690 |
|||
stars: 30835 |
|||
owner_login: mouredev |
|||
owner_html_url: https://github.com/mouredev |
|||
- name: serve |
|||
html_url: https://github.com/jina-ai/serve |
|||
stars: 21356 |
|||
stars: 21631 |
|||
owner_login: jina-ai |
|||
owner_html_url: https://github.com/jina-ai |
|||
- name: sqlmodel |
|||
html_url: https://github.com/fastapi/sqlmodel |
|||
stars: 15312 |
|||
owner_login: fastapi |
|||
owner_html_url: https://github.com/fastapi |
|||
- name: HivisionIDPhotos |
|||
html_url: https://github.com/Zeyi-Lin/HivisionIDPhotos |
|||
stars: 14957 |
|||
stars: 18125 |
|||
owner_login: Zeyi-Lin |
|||
owner_html_url: https://github.com/Zeyi-Lin |
|||
- name: sqlmodel |
|||
html_url: https://github.com/fastapi/sqlmodel |
|||
stars: 16249 |
|||
owner_login: fastapi |
|||
owner_html_url: https://github.com/fastapi |
|||
- name: Douyin_TikTok_Download_API |
|||
html_url: https://github.com/Evil0ctal/Douyin_TikTok_Download_API |
|||
stars: 11192 |
|||
stars: 13279 |
|||
owner_login: Evil0ctal |
|||
owner_html_url: https://github.com/Evil0ctal |
|||
- name: fastapi-best-practices |
|||
html_url: https://github.com/zhanymkanov/fastapi-best-practices |
|||
stars: 10501 |
|||
stars: 12334 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: awesome-fastapi |
|||
html_url: https://github.com/mjhea0/awesome-fastapi |
|||
stars: 9193 |
|||
stars: 9934 |
|||
owner_login: mjhea0 |
|||
owner_html_url: https://github.com/mjhea0 |
|||
- name: FastUI |
|||
html_url: https://github.com/pydantic/FastUI |
|||
stars: 8721 |
|||
stars: 8838 |
|||
owner_login: pydantic |
|||
owner_html_url: https://github.com/pydantic |
|||
- name: XHS-Downloader |
|||
html_url: https://github.com/JoeanAmier/XHS-Downloader |
|||
stars: 7962 |
|||
owner_login: JoeanAmier |
|||
owner_html_url: https://github.com/JoeanAmier |
|||
- name: nonebot2 |
|||
html_url: https://github.com/nonebot/nonebot2 |
|||
stars: 6433 |
|||
stars: 6834 |
|||
owner_login: nonebot |
|||
owner_html_url: https://github.com/nonebot |
|||
- name: serge |
|||
html_url: https://github.com/serge-chat/serge |
|||
stars: 5699 |
|||
owner_login: serge-chat |
|||
owner_html_url: https://github.com/serge-chat |
|||
- name: FileCodeBox |
|||
html_url: https://github.com/vastsa/FileCodeBox |
|||
stars: 5534 |
|||
stars: 6783 |
|||
owner_login: vastsa |
|||
owner_html_url: https://github.com/vastsa |
|||
- name: fastapi-users |
|||
html_url: https://github.com/fastapi-users/fastapi-users |
|||
stars: 4921 |
|||
owner_login: fastapi-users |
|||
owner_html_url: https://github.com/fastapi-users |
|||
- name: polar |
|||
html_url: https://github.com/polarsource/polar |
|||
stars: 4598 |
|||
owner_login: polarsource |
|||
owner_html_url: https://github.com/polarsource |
|||
- name: fastapi_mcp |
|||
html_url: https://github.com/tadata-org/fastapi_mcp |
|||
stars: 5846 |
|||
owner_login: tadata-org |
|||
owner_html_url: https://github.com/tadata-org |
|||
- name: hatchet |
|||
html_url: https://github.com/hatchet-dev/hatchet |
|||
stars: 4585 |
|||
stars: 5773 |
|||
owner_login: hatchet-dev |
|||
owner_html_url: https://github.com/hatchet-dev |
|||
- name: chatgpt-web-share |
|||
html_url: https://github.com/chatpire/chatgpt-web-share |
|||
stars: 4318 |
|||
owner_login: chatpire |
|||
owner_html_url: https://github.com/chatpire |
|||
- name: serge |
|||
html_url: https://github.com/serge-chat/serge |
|||
stars: 5728 |
|||
owner_login: serge-chat |
|||
owner_html_url: https://github.com/serge-chat |
|||
- name: polar |
|||
html_url: https://github.com/polarsource/polar |
|||
stars: 5709 |
|||
owner_login: polarsource |
|||
owner_html_url: https://github.com/polarsource |
|||
- name: fastapi-users |
|||
html_url: https://github.com/fastapi-users/fastapi-users |
|||
stars: 5336 |
|||
owner_login: fastapi-users |
|||
owner_html_url: https://github.com/fastapi-users |
|||
- name: strawberry |
|||
html_url: https://github.com/strawberry-graphql/strawberry |
|||
stars: 4180 |
|||
stars: 4317 |
|||
owner_login: strawberry-graphql |
|||
owner_html_url: https://github.com/strawberry-graphql |
|||
- name: chatgpt-web-share |
|||
html_url: https://github.com/chatpire/chatgpt-web-share |
|||
stars: 4301 |
|||
owner_login: chatpire |
|||
owner_html_url: https://github.com/chatpire |
|||
- name: atrilabs-engine |
|||
html_url: https://github.com/Atri-Labs/atrilabs-engine |
|||
stars: 4114 |
|||
stars: 4106 |
|||
owner_login: Atri-Labs |
|||
owner_html_url: https://github.com/Atri-Labs |
|||
- name: dynaconf |
|||
html_url: https://github.com/dynaconf/dynaconf |
|||
stars: 3904 |
|||
stars: 4045 |
|||
owner_login: dynaconf |
|||
owner_html_url: https://github.com/dynaconf |
|||
- name: poem |
|||
html_url: https://github.com/poem-web/poem |
|||
stars: 3781 |
|||
stars: 4037 |
|||
owner_login: poem-web |
|||
owner_html_url: https://github.com/poem-web |
|||
- name: farfalle |
|||
html_url: https://github.com/rashadphz/farfalle |
|||
stars: 3190 |
|||
stars: 3348 |
|||
owner_login: rashadphz |
|||
owner_html_url: https://github.com/rashadphz |
|||
- name: opyrator |
|||
html_url: https://github.com/ml-tooling/opyrator |
|||
stars: 3119 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: LitServe |
|||
html_url: https://github.com/Lightning-AI/LitServe |
|||
stars: 3347 |
|||
owner_login: Lightning-AI |
|||
owner_html_url: https://github.com/Lightning-AI |
|||
- name: fastapi-admin |
|||
html_url: https://github.com/fastapi-admin/fastapi-admin |
|||
stars: 3086 |
|||
stars: 3309 |
|||
owner_login: fastapi-admin |
|||
owner_html_url: https://github.com/fastapi-admin |
|||
- name: docarray |
|||
html_url: https://github.com/docarray/docarray |
|||
stars: 3021 |
|||
owner_login: docarray |
|||
owner_html_url: https://github.com/docarray |
|||
- name: datamodel-code-generator |
|||
html_url: https://github.com/koxudaxi/datamodel-code-generator |
|||
stars: 2988 |
|||
stars: 3291 |
|||
owner_login: koxudaxi |
|||
owner_html_url: https://github.com/koxudaxi |
|||
- name: LitServe |
|||
html_url: https://github.com/Lightning-AI/LitServe |
|||
stars: 2863 |
|||
owner_login: Lightning-AI |
|||
owner_html_url: https://github.com/Lightning-AI |
|||
- name: fastapi-realworld-example-app |
|||
html_url: https://github.com/nsidnev/fastapi-realworld-example-app |
|||
stars: 2850 |
|||
owner_login: nsidnev |
|||
owner_html_url: https://github.com/nsidnev |
|||
- name: logfire |
|||
html_url: https://github.com/pydantic/logfire |
|||
stars: 2757 |
|||
stars: 3288 |
|||
owner_login: pydantic |
|||
owner_html_url: https://github.com/pydantic |
|||
- name: uvicorn-gunicorn-fastapi-docker |
|||
html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker |
|||
stars: 2731 |
|||
owner_login: tiangolo |
|||
owner_html_url: https://github.com/tiangolo |
|||
- name: huma |
|||
html_url: https://github.com/danielgtaylor/huma |
|||
stars: 2700 |
|||
stars: 3201 |
|||
owner_login: danielgtaylor |
|||
owner_html_url: https://github.com/danielgtaylor |
|||
- name: opyrator |
|||
html_url: https://github.com/ml-tooling/opyrator |
|||
stars: 3132 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: Kokoro-FastAPI |
|||
html_url: https://github.com/remsky/Kokoro-FastAPI |
|||
stars: 3099 |
|||
owner_login: remsky |
|||
owner_html_url: https://github.com/remsky |
|||
- name: docarray |
|||
html_url: https://github.com/docarray/docarray |
|||
stars: 3075 |
|||
owner_login: docarray |
|||
owner_html_url: https://github.com/docarray |
|||
- name: fastapi-realworld-example-app |
|||
html_url: https://github.com/nsidnev/fastapi-realworld-example-app |
|||
stars: 2902 |
|||
owner_login: nsidnev |
|||
owner_html_url: https://github.com/nsidnev |
|||
- name: tracecat |
|||
html_url: https://github.com/TracecatHQ/tracecat |
|||
stars: 2539 |
|||
stars: 2888 |
|||
owner_login: TracecatHQ |
|||
owner_html_url: https://github.com/TracecatHQ |
|||
- name: uvicorn-gunicorn-fastapi-docker |
|||
html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker |
|||
stars: 2775 |
|||
owner_login: tiangolo |
|||
owner_html_url: https://github.com/tiangolo |
|||
- name: best-of-web-python |
|||
html_url: https://github.com/ml-tooling/best-of-web-python |
|||
stars: 2460 |
|||
stars: 2537 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: RasaGPT |
|||
html_url: https://github.com/paulpierre/RasaGPT |
|||
stars: 2401 |
|||
stars: 2427 |
|||
owner_login: paulpierre |
|||
owner_html_url: https://github.com/paulpierre |
|||
- name: fastapi-react |
|||
html_url: https://github.com/Buuntu/fastapi-react |
|||
stars: 2315 |
|||
stars: 2397 |
|||
owner_login: Buuntu |
|||
owner_html_url: https://github.com/Buuntu |
|||
- name: nextpy |
|||
html_url: https://github.com/dot-agent/nextpy |
|||
stars: 2266 |
|||
owner_login: dot-agent |
|||
owner_html_url: https://github.com/dot-agent |
|||
- name: 30-Days-of-Python |
|||
html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python |
|||
stars: 2163 |
|||
owner_login: codingforentrepreneurs |
|||
owner_html_url: https://github.com/codingforentrepreneurs |
|||
- name: FastAPI-template |
|||
html_url: https://github.com/s3rius/FastAPI-template |
|||
stars: 2156 |
|||
stars: 2334 |
|||
owner_login: s3rius |
|||
owner_html_url: https://github.com/s3rius |
|||
- name: nextpy |
|||
html_url: https://github.com/dot-agent/nextpy |
|||
stars: 2295 |
|||
owner_login: dot-agent |
|||
owner_html_url: https://github.com/dot-agent |
|||
- name: sqladmin |
|||
html_url: https://github.com/aminalaee/sqladmin |
|||
stars: 2051 |
|||
stars: 2235 |
|||
owner_login: aminalaee |
|||
owner_html_url: https://github.com/aminalaee |
|||
- name: 30-Days-of-Python |
|||
html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python |
|||
stars: 2181 |
|||
owner_login: codingforentrepreneurs |
|||
owner_html_url: https://github.com/codingforentrepreneurs |
|||
- name: langserve |
|||
html_url: https://github.com/langchain-ai/langserve |
|||
stars: 2025 |
|||
stars: 2119 |
|||
owner_login: langchain-ai |
|||
owner_html_url: https://github.com/langchain-ai |
|||
- name: fastapi-utils |
|||
html_url: https://github.com/fastapiutils/fastapi-utils |
|||
stars: 2021 |
|||
stars: 2100 |
|||
owner_login: fastapiutils |
|||
owner_html_url: https://github.com/fastapiutils |
|||
- name: solara |
|||
html_url: https://github.com/widgetti/solara |
|||
stars: 1980 |
|||
owner_login: widgetti |
|||
owner_html_url: https://github.com/widgetti |
|||
- name: supabase-py |
|||
html_url: https://github.com/supabase/supabase-py |
|||
stars: 1874 |
|||
stars: 2084 |
|||
owner_login: supabase |
|||
owner_html_url: https://github.com/supabase |
|||
- name: python-week-2022 |
|||
html_url: https://github.com/rochacbruno/python-week-2022 |
|||
stars: 1829 |
|||
owner_login: rochacbruno |
|||
owner_html_url: https://github.com/rochacbruno |
|||
- name: solara |
|||
html_url: https://github.com/widgetti/solara |
|||
stars: 2056 |
|||
owner_login: widgetti |
|||
owner_html_url: https://github.com/widgetti |
|||
- name: mangum |
|||
html_url: https://github.com/Kludex/mangum |
|||
stars: 1820 |
|||
stars: 1923 |
|||
owner_login: Kludex |
|||
owner_html_url: https://github.com/Kludex |
|||
- name: Kokoro-FastAPI |
|||
html_url: https://github.com/remsky/Kokoro-FastAPI |
|||
stars: 1771 |
|||
owner_login: remsky |
|||
owner_html_url: https://github.com/remsky |
|||
- name: python-week-2022 |
|||
html_url: https://github.com/rochacbruno/python-week-2022 |
|||
stars: 1821 |
|||
owner_login: rochacbruno |
|||
owner_html_url: https://github.com/rochacbruno |
|||
- name: agentkit |
|||
html_url: https://github.com/BCG-X-Official/agentkit |
|||
stars: 1765 |
|||
owner_login: BCG-X-Official |
|||
owner_html_url: https://github.com/BCG-X-Official |
|||
- name: manage-fastapi |
|||
html_url: https://github.com/ycd/manage-fastapi |
|||
stars: 1719 |
|||
stars: 1756 |
|||
owner_login: ycd |
|||
owner_html_url: https://github.com/ycd |
|||
- name: ormar |
|||
html_url: https://github.com/collerek/ormar |
|||
stars: 1710 |
|||
stars: 1755 |
|||
owner_login: collerek |
|||
owner_html_url: https://github.com/collerek |
|||
- name: agentkit |
|||
html_url: https://github.com/BCG-X-Official/agentkit |
|||
stars: 1658 |
|||
owner_login: BCG-X-Official |
|||
owner_html_url: https://github.com/BCG-X-Official |
|||
- name: langchain-serve |
|||
html_url: https://github.com/jina-ai/langchain-serve |
|||
stars: 1618 |
|||
stars: 1631 |
|||
owner_login: jina-ai |
|||
owner_html_url: https://github.com/jina-ai |
|||
- name: termpair |
|||
html_url: https://github.com/cs01/termpair |
|||
stars: 1611 |
|||
owner_login: cs01 |
|||
owner_html_url: https://github.com/cs01 |
|||
- name: coronavirus-tracker-api |
|||
html_url: https://github.com/ExpDev07/coronavirus-tracker-api |
|||
stars: 1588 |
|||
owner_login: ExpDev07 |
|||
owner_html_url: https://github.com/ExpDev07 |
|||
- name: piccolo |
|||
html_url: https://github.com/piccolo-orm/piccolo |
|||
stars: 1546 |
|||
stars: 1629 |
|||
owner_login: piccolo-orm |
|||
owner_html_url: https://github.com/piccolo-orm |
|||
- name: fastapi-cache |
|||
html_url: https://github.com/long2ice/fastapi-cache |
|||
stars: 1478 |
|||
owner_login: long2ice |
|||
owner_html_url: https://github.com/long2ice |
|||
- name: termpair |
|||
html_url: https://github.com/cs01/termpair |
|||
stars: 1616 |
|||
owner_login: cs01 |
|||
owner_html_url: https://github.com/cs01 |
|||
- name: openapi-python-client |
|||
html_url: https://github.com/openapi-generators/openapi-python-client |
|||
stars: 1467 |
|||
stars: 1603 |
|||
owner_login: openapi-generators |
|||
owner_html_url: https://github.com/openapi-generators |
|||
- name: fastapi-cache |
|||
html_url: https://github.com/long2ice/fastapi-cache |
|||
stars: 1589 |
|||
owner_login: long2ice |
|||
owner_html_url: https://github.com/long2ice |
|||
- name: coronavirus-tracker-api |
|||
html_url: https://github.com/ExpDev07/coronavirus-tracker-api |
|||
stars: 1580 |
|||
owner_login: ExpDev07 |
|||
owner_html_url: https://github.com/ExpDev07 |
|||
- name: slowapi |
|||
html_url: https://github.com/laurentS/slowapi |
|||
stars: 1533 |
|||
owner_login: laurentS |
|||
owner_html_url: https://github.com/laurentS |
|||
- name: fastapi-crudrouter |
|||
html_url: https://github.com/awtkns/fastapi-crudrouter |
|||
stars: 1462 |
|||
stars: 1518 |
|||
owner_login: awtkns |
|||
owner_html_url: https://github.com/awtkns |
|||
- name: awesome-fastapi-projects |
|||
html_url: https://github.com/Kludex/awesome-fastapi-projects |
|||
stars: 1418 |
|||
stars: 1461 |
|||
owner_login: Kludex |
|||
owner_html_url: https://github.com/Kludex |
|||
- name: vue-fastapi-admin |
|||
html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin |
|||
stars: 1409 |
|||
owner_login: mizhexiaoxiao |
|||
owner_html_url: https://github.com/mizhexiaoxiao |
|||
- name: awesome-python-resources |
|||
html_url: https://github.com/DjangoEx/awesome-python-resources |
|||
stars: 1383 |
|||
stars: 1393 |
|||
owner_login: DjangoEx |
|||
owner_html_url: https://github.com/DjangoEx |
|||
- name: slowapi |
|||
html_url: https://github.com/laurentS/slowapi |
|||
stars: 1363 |
|||
owner_login: laurentS |
|||
owner_html_url: https://github.com/laurentS |
|||
- name: budgetml |
|||
html_url: https://github.com/ebhy/budgetml |
|||
stars: 1344 |
|||
owner_login: ebhy |
|||
owner_html_url: https://github.com/ebhy |
|||
- name: fastapi-pagination |
|||
html_url: https://github.com/uriyyo/fastapi-pagination |
|||
stars: 1284 |
|||
stars: 1378 |
|||
owner_login: uriyyo |
|||
owner_html_url: https://github.com/uriyyo |
|||
- name: fastapi-boilerplate |
|||
html_url: https://github.com/teamhide/fastapi-boilerplate |
|||
stars: 1234 |
|||
stars: 1348 |
|||
owner_login: teamhide |
|||
owner_html_url: https://github.com/teamhide |
|||
- name: fastapi-tutorial |
|||
html_url: https://github.com/liaogx/fastapi-tutorial |
|||
stars: 1181 |
|||
owner_login: liaogx |
|||
owner_html_url: https://github.com/liaogx |
|||
- name: budgetml |
|||
html_url: https://github.com/ebhy/budgetml |
|||
stars: 1344 |
|||
owner_login: ebhy |
|||
owner_html_url: https://github.com/ebhy |
|||
- name: fastapi-amis-admin |
|||
html_url: https://github.com/amisadmin/fastapi-amis-admin |
|||
stars: 1164 |
|||
stars: 1284 |
|||
owner_login: amisadmin |
|||
owner_html_url: https://github.com/amisadmin |
|||
- name: bracket |
|||
html_url: https://github.com/evroon/bracket |
|||
stars: 1274 |
|||
owner_login: evroon |
|||
owner_html_url: https://github.com/evroon |
|||
- name: fastapi-tutorial |
|||
html_url: https://github.com/liaogx/fastapi-tutorial |
|||
stars: 1265 |
|||
owner_login: liaogx |
|||
owner_html_url: https://github.com/liaogx |
|||
- name: fastapi-code-generator |
|||
html_url: https://github.com/koxudaxi/fastapi-code-generator |
|||
stars: 1132 |
|||
stars: 1216 |
|||
owner_login: koxudaxi |
|||
owner_html_url: https://github.com/koxudaxi |
|||
- name: bolt-python |
|||
html_url: https://github.com/slackapi/bolt-python |
|||
stars: 1130 |
|||
stars: 1190 |
|||
owner_login: slackapi |
|||
owner_html_url: https://github.com/slackapi |
|||
- name: fastcrud |
|||
html_url: https://github.com/benavlabs/fastcrud |
|||
stars: 1169 |
|||
owner_login: benavlabs |
|||
owner_html_url: https://github.com/benavlabs |
|||
- name: prometheus-fastapi-instrumentator |
|||
html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator |
|||
stars: 1167 |
|||
owner_login: trallnag |
|||
owner_html_url: https://github.com/trallnag |
|||
- name: fastapi_production_template |
|||
html_url: https://github.com/zhanymkanov/fastapi_production_template |
|||
stars: 1165 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: bedrock-chat |
|||
html_url: https://github.com/aws-samples/bedrock-chat |
|||
stars: 1163 |
|||
owner_login: aws-samples |
|||
owner_html_url: https://github.com/aws-samples |
|||
- name: langchain-extract |
|||
html_url: https://github.com/langchain-ai/langchain-extract |
|||
stars: 1110 |
|||
stars: 1142 |
|||
owner_login: langchain-ai |
|||
owner_html_url: https://github.com/langchain-ai |
|||
- name: odmantic |
|||
html_url: https://github.com/art049/odmantic |
|||
stars: 1104 |
|||
stars: 1121 |
|||
owner_login: art049 |
|||
owner_html_url: https://github.com/art049 |
|||
- name: fastapi_production_template |
|||
html_url: https://github.com/zhanymkanov/fastapi_production_template |
|||
stars: 1093 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: SurfSense |
|||
html_url: https://github.com/MODSetter/SurfSense |
|||
stars: 1081 |
|||
owner_login: MODSetter |
|||
owner_html_url: https://github.com/MODSetter |
|||
- name: fastapi_best_architecture |
|||
html_url: https://github.com/fastapi-practices/fastapi_best_architecture |
|||
stars: 1118 |
|||
owner_login: fastapi-practices |
|||
owner_html_url: https://github.com/fastapi-practices |
|||
- name: fastapi-alembic-sqlmodel-async |
|||
html_url: https://github.com/jonra1993/fastapi-alembic-sqlmodel-async |
|||
stars: 1063 |
|||
stars: 1116 |
|||
owner_login: jonra1993 |
|||
owner_html_url: https://github.com/jonra1993 |
|||
- name: prometheus-fastapi-instrumentator |
|||
html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator |
|||
stars: 1059 |
|||
owner_login: trallnag |
|||
owner_html_url: https://github.com/trallnag |
|||
- name: bedrock-claude-chat |
|||
html_url: https://github.com/aws-samples/bedrock-claude-chat |
|||
stars: 1039 |
|||
owner_login: aws-samples |
|||
owner_html_url: https://github.com/aws-samples |
|||
- name: FastAPI-boilerplate |
|||
html_url: https://github.com/benavlabs/FastAPI-boilerplate |
|||
stars: 1070 |
|||
owner_login: benavlabs |
|||
owner_html_url: https://github.com/benavlabs |
|||
- name: restish |
|||
html_url: https://github.com/rest-sh/restish |
|||
stars: 1069 |
|||
owner_login: rest-sh |
|||
owner_html_url: https://github.com/rest-sh |
|||
- name: runhouse |
|||
html_url: https://github.com/run-house/runhouse |
|||
stars: 1005 |
|||
stars: 1037 |
|||
owner_login: run-house |
|||
owner_html_url: https://github.com/run-house |
|||
- name: vue-fastapi-admin |
|||
html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin |
|||
stars: 987 |
|||
owner_login: mizhexiaoxiao |
|||
owner_html_url: https://github.com/mizhexiaoxiao |
|||
- name: lanarky |
|||
html_url: https://github.com/ajndkr/lanarky |
|||
stars: 986 |
|||
owner_login: ajndkr |
|||
owner_html_url: https://github.com/ajndkr |
|||
- name: autollm |
|||
html_url: https://github.com/viddexa/autollm |
|||
stars: 986 |
|||
stars: 994 |
|||
owner_login: viddexa |
|||
owner_html_url: https://github.com/viddexa |
|||
- name: restish |
|||
html_url: https://github.com/danielgtaylor/restish |
|||
stars: 984 |
|||
owner_login: danielgtaylor |
|||
owner_html_url: https://github.com/danielgtaylor |
|||
- name: fastcrud |
|||
html_url: https://github.com/igorbenav/fastcrud |
|||
stars: 964 |
|||
owner_login: igorbenav |
|||
owner_html_url: https://github.com/igorbenav |
|||
- name: lanarky |
|||
html_url: https://github.com/ajndkr/lanarky |
|||
stars: 992 |
|||
owner_login: ajndkr |
|||
owner_html_url: https://github.com/ajndkr |
|||
- name: authx |
|||
html_url: https://github.com/yezz123/authx |
|||
stars: 953 |
|||
owner_login: yezz123 |
|||
owner_html_url: https://github.com/yezz123 |
|||
- name: secure |
|||
html_url: https://github.com/TypeError/secure |
|||
stars: 928 |
|||
stars: 941 |
|||
owner_login: TypeError |
|||
owner_html_url: https://github.com/TypeError |
|||
- name: langcorn |
|||
html_url: https://github.com/msoedov/langcorn |
|||
stars: 916 |
|||
owner_login: msoedov |
|||
owner_html_url: https://github.com/msoedov |
|||
- name: energy-forecasting |
|||
html_url: https://github.com/iusztinpaul/energy-forecasting |
|||
stars: 898 |
|||
stars: 928 |
|||
owner_login: iusztinpaul |
|||
owner_html_url: https://github.com/iusztinpaul |
|||
- name: authx |
|||
html_url: https://github.com/yezz123/authx |
|||
stars: 874 |
|||
owner_login: yezz123 |
|||
owner_html_url: https://github.com/yezz123 |
|||
- name: langcorn |
|||
html_url: https://github.com/msoedov/langcorn |
|||
stars: 927 |
|||
owner_login: msoedov |
|||
owner_html_url: https://github.com/msoedov |
|||
- name: titiler |
|||
html_url: https://github.com/developmentseed/titiler |
|||
stars: 841 |
|||
stars: 901 |
|||
owner_login: developmentseed |
|||
owner_html_url: https://github.com/developmentseed |
|||
- name: FastAPI-boilerplate |
|||
html_url: https://github.com/igorbenav/FastAPI-boilerplate |
|||
stars: 820 |
|||
owner_login: igorbenav |
|||
owner_html_url: https://github.com/igorbenav |
|||
- name: flock |
|||
html_url: https://github.com/Onelevenvy/flock |
|||
stars: 896 |
|||
owner_login: Onelevenvy |
|||
owner_html_url: https://github.com/Onelevenvy |
|||
- name: fastapi-langgraph-agent-production-ready-template |
|||
html_url: https://github.com/wassim249/fastapi-langgraph-agent-production-ready-template |
|||
stars: 896 |
|||
owner_login: wassim249 |
|||
owner_html_url: https://github.com/wassim249 |
|||
- name: marker-api |
|||
html_url: https://github.com/adithya-s-k/marker-api |
|||
stars: 813 |
|||
stars: 875 |
|||
owner_login: adithya-s-k |
|||
owner_html_url: https://github.com/adithya-s-k |
|||
- name: fastapi_best_architecture |
|||
html_url: https://github.com/fastapi-practices/fastapi_best_architecture |
|||
stars: 802 |
|||
owner_login: fastapi-practices |
|||
owner_html_url: https://github.com/fastapi-practices |
|||
- name: httpdbg |
|||
html_url: https://github.com/cle-b/httpdbg |
|||
stars: 870 |
|||
owner_login: cle-b |
|||
owner_html_url: https://github.com/cle-b |
|||
- name: fastapi-do-zero |
|||
html_url: https://github.com/dunossauro/fastapi-do-zero |
|||
stars: 745 |
|||
stars: 855 |
|||
owner_login: dunossauro |
|||
owner_html_url: https://github.com/dunossauro |
|||
- name: fastapi-mail |
|||
html_url: https://github.com/sabuhish/fastapi-mail |
|||
stars: 744 |
|||
owner_login: sabuhish |
|||
owner_html_url: https://github.com/sabuhish |
|||
- name: ludic |
|||
html_url: https://github.com/getludic/ludic |
|||
stars: 849 |
|||
owner_login: getludic |
|||
owner_html_url: https://github.com/getludic |
|||
- name: fastapi-observability |
|||
html_url: https://github.com/blueswen/fastapi-observability |
|||
stars: 743 |
|||
stars: 837 |
|||
owner_login: blueswen |
|||
owner_html_url: https://github.com/blueswen |
|||
- name: lccn_predictor |
|||
html_url: https://github.com/baoliay2008/lccn_predictor |
|||
stars: 741 |
|||
owner_login: baoliay2008 |
|||
owner_html_url: https://github.com/baoliay2008 |
|||
- name: annotated-py-projects |
|||
html_url: https://github.com/hhstore/annotated-py-projects |
|||
stars: 727 |
|||
owner_login: hhstore |
|||
owner_html_url: https://github.com/hhstore |
|||
- name: learn-generative-ai |
|||
html_url: https://github.com/panaverse/learn-generative-ai |
|||
stars: 714 |
|||
owner_login: panaverse |
|||
owner_html_url: https://github.com/panaverse |
|||
- name: fastapi-scaf |
|||
html_url: https://github.com/atpuxiner/fastapi-scaf |
|||
stars: 821 |
|||
owner_login: atpuxiner |
|||
owner_html_url: https://github.com/atpuxiner |
|||
- name: starlette-admin |
|||
html_url: https://github.com/jowilf/starlette-admin |
|||
stars: 713 |
|||
stars: 808 |
|||
owner_login: jowilf |
|||
owner_html_url: https://github.com/jowilf |
|||
- name: chatGPT-web |
|||
html_url: https://github.com/mic1on/chatGPT-web |
|||
stars: 712 |
|||
owner_login: mic1on |
|||
owner_html_url: https://github.com/mic1on |
|||
- name: FastAPI-Backend-Template |
|||
html_url: https://github.com/Aeternalis-Ingenium/FastAPI-Backend-Template |
|||
stars: 709 |
|||
owner_login: Aeternalis-Ingenium |
|||
owner_html_url: https://github.com/Aeternalis-Ingenium |
|||
- name: linbing |
|||
html_url: https://github.com/taomujian/linbing |
|||
stars: 698 |
|||
owner_login: taomujian |
|||
owner_html_url: https://github.com/taomujian |
|||
- name: KonomiTV |
|||
html_url: https://github.com/tsukumijima/KonomiTV |
|||
stars: 687 |
|||
owner_login: tsukumijima |
|||
owner_html_url: https://github.com/tsukumijima |
|||
- name: fastapi-jwt-auth |
|||
html_url: https://github.com/IndominusByte/fastapi-jwt-auth |
|||
stars: 685 |
|||
owner_login: IndominusByte |
|||
owner_html_url: https://github.com/IndominusByte |
|||
- name: pity |
|||
html_url: https://github.com/wuranxu/pity |
|||
stars: 667 |
|||
owner_login: wuranxu |
|||
owner_html_url: https://github.com/wuranxu |
|||
- name: fastapi-mail |
|||
html_url: https://github.com/sabuhish/fastapi-mail |
|||
stars: 807 |
|||
owner_login: sabuhish |
|||
owner_html_url: https://github.com/sabuhish |
|||
- name: aktools |
|||
html_url: https://github.com/akfamily/aktools |
|||
stars: 796 |
|||
owner_login: akfamily |
|||
owner_html_url: https://github.com/akfamily |
|||
- name: RuoYi-Vue3-FastAPI |
|||
html_url: https://github.com/insistence/RuoYi-Vue3-FastAPI |
|||
stars: 782 |
|||
owner_login: insistence |
|||
owner_html_url: https://github.com/insistence |
|||
|
@ -1,106 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="BkDNbdtn8_9fWQybnc8v" name="Page-1"> |
|||
<mxGraphModel dx="741" dy="1167" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="420" y="280" width="920" height="670" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="755" y="290" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="1110" y="410" width="190" height="500" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">RAM<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="1166.92" y="420" width="76.16" height="30" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="9" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="470" y="410" width="250" height="500" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="10" value="<font style="font-size: 24px" face="Roboto">CPU<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="554.61" y="420" width="80.77" height="30" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" source="11" target="12" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" source="11" target="13" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="820" y="525" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;endArrow=none;endFill=0;" parent="1" source="11" target="17" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="11" target="18" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="11" value="<font face="roboto"><span style="font-size: 24px">Process&nbsp;</span></font><span style="font-family: &#34;roboto&#34; ; font-size: 24px">Manager</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> |
|||
<mxGeometry x="780" y="420" width="250" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="12" target="23" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="12" value="<font face="roboto"><span style="font-size: 24px">Worker Process</span></font>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="840" y="540" width="240" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="13" target="24" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="13" target="22" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="775" y="710"/> |
|||
<mxPoint x="775" y="688"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="13" value="<font face="roboto"><span style="font-size: 24px">Worker Process</span></font>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> |
|||
<mxGeometry x="840" y="660" width="240" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="16" target="27" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="16" target="30" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="16" value="<font face="roboto"><span style="font-size: 24px">Another Process</span></font>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="780" y="790" width="250" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="17" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#d5e8d4;strokeColor=#82b366;dashed=1;" parent="1" vertex="1"> |
|||
<mxGeometry x="480" y="458" width="230" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="18" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> |
|||
<mxGeometry x="1130" y="460" width="150" height="20" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="21" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#fff2cc;strokeColor=#d6b656;dashed=1;" parent="1" vertex="1"> |
|||
<mxGeometry x="480" y="508" width="230" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="22" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;dashed=1;" parent="1" vertex="1"> |
|||
<mxGeometry x="480" y="618" width="230" height="140" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="23" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">1 GB</font>" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="1130" y="490" width="150" height="150" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="24" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">1 GB</font>" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> |
|||
<mxGeometry x="1130" y="650" width="150" height="150" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="27" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;dashed=1;" parent="1" vertex="1"> |
|||
<mxGeometry x="480" y="768" width="230" height="50" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="30" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="1130" y="810" width="150" height="50" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 16 KiB |
@ -1,277 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="3321" dy="2867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" vertex="1" parent="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" vertex="1" parent="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" edge="1" parent="1" target="14"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" edge="1" parent="1" target="17"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" vertex="1" connectable="0" parent="1"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" vertex="1" parent="33"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" vertex="1" parent="33"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="101" target="32"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" vertex="1" parent="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;" edge="1" parent="1" source="55" target="49"> |
|||
<mxGeometry relative="1" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;startArrow=none;" edge="1" parent="1" source="102" target="57"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="410" y="400" as="targetPoint"/> |
|||
<mxPoint x="585" y="1050" as="sourcePoint"/> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="55" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">Cert Renovation Program</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="515" y="780" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeWidth=3;startArrow=none;" edge="1" parent="1" source="103" target="55"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="875" y="1030" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="790" y="930"/> |
|||
<mxPoint x="790" y="930"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="57" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Let's Encrypt</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="500" y="1150" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="85" target="6"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="62" target="78"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="920" y="770"/> |
|||
<mxPoint x="920" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="62" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">FastAPI</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal"> app for: someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="890" y="650" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="65" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">Another app</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">: another.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="890" y="50" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="66" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">One more app</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">: onemore.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="890" y="180" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="78" value="<font face="Roboto"><span style="font-size: 24px ; font-weight: 400">A Database</span></font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
|||
<mxGeometry x="890" y="780" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="80" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeWidth=3;endArrow=none;" edge="1" parent="1" source="57" target="103"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="480" y="1090" as="sourcePoint"/> |
|||
<mxPoint x="875" y="1110" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="915" y="1250"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="81" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;endArrow=none;" edge="1" parent="1" source="55" target="102"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="525" y="970" as="targetPoint"/> |
|||
<mxPoint x="550" y="880" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="525" y="930"/> |
|||
<mxPoint x="525" y="930"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="85" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Plain response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" vertex="1" parent="1"> |
|||
<mxGeometry x="890" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="86" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="62" target="85"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="1030.0000000000005" y="649.9999999999995" as="sourcePoint"/> |
|||
<mxPoint x="850" y="540.0000000000005" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="1030" y="540"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="84" target="62"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="1240" y="390"/> |
|||
<mxPoint x="1240" y="700"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" edge="1" parent="1" source="100" target="34"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" edge="1" parent="1" source="32" target="100"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-80"/> |
|||
<mxPoint x="-5" y="-80"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="34" target="101"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="97" target="32"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="340" y="480"/> |
|||
<mxPoint x="340" y="480"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" edge="1" parent="1" source="96" target="36"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="32" target="96"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" vertex="1" parent="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="102" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Renew HTTPS cert for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="430" y="960" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="103" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">New HTTPS cert for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="750" y="1070" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" edge="1" parent="1" source="104" target="36"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="32" target="104"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="97" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" vertex="1" parent="1"> |
|||
<mxGeometry x="90" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="110" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="36" target="97"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="415" y="680" as="sourcePoint"/> |
|||
<mxPoint x="110" y="275" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="245" y="710"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" vertex="1" parent="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" vertex="1" parent="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" vertex="1" parent="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="84" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Decrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" vertex="1" parent="1"> |
|||
<mxGeometry x="885" y="350" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="111" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" edge="1" parent="1" source="6" target="84"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="850" y="390" as="sourcePoint"/> |
|||
<mxPoint x="1190" y="700" as="targetPoint"/> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 647 KiB |
Before Width: | Height: | Size: 40 KiB |
@ -1,78 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="2738" dy="2173" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-10" y="-120"/> |
|||
<mxPoint x="-10" y="-120"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 10 KiB |
@ -1,110 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="2481" dy="1867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 15 KiB |
@ -1,131 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="2481" dy="1867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 21 KiB |
@ -1,152 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="2312" dy="1667" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="96" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="96" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 23 KiB |
@ -1,166 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="5190" dy="5090" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="62" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">FastAPI</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal"> app for: someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="640" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="6" target="62" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="1240" y="390"/> |
|||
<mxPoint x="1240" y="700"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="84" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Decrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="350" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-80"/> |
|||
<mxPoint x="-5" y="-80"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="96" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="96" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 624 KiB |
Before Width: | Height: | Size: 26 KiB |
@ -1,183 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="3321" dy="2867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="85" target="6" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="62" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">FastAPI</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal"> app for: someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="650" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="85" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Plain response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="86" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="62" target="85" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="1030.0000000000005" y="649.9999999999995" as="sourcePoint"/> |
|||
<mxPoint x="850" y="540.0000000000005" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="1030" y="540"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="6" target="62" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="1240" y="390"/> |
|||
<mxPoint x="1240" y="700"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="84" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Decrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="350" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="96" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="96" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 627 KiB |
Before Width: | Height: | Size: 27 KiB |
@ -1,203 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="3321" dy="2867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="85" target="6" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="62" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">FastAPI</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal"> app for: someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="650" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="85" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Plain response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="86" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="62" target="85" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="1030.0000000000005" y="649.9999999999995" as="sourcePoint"/> |
|||
<mxPoint x="850" y="540.0000000000005" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="1030" y="540"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="6" target="62" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="1240" y="390"/> |
|||
<mxPoint x="1240" y="700"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="84" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Decrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="350" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="97" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="340" y="480"/> |
|||
<mxPoint x="340" y="480"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="96" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="96" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="97" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" parent="1" vertex="1"> |
|||
<mxGeometry x="90" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="110" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="36" target="97" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="415" y="680" as="sourcePoint"/> |
|||
<mxPoint x="110" y="275" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="245" y="710"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 29 KiB |
@ -1,217 +0,0 @@ |
|||
<mxfile host="65bd71144e"> |
|||
<diagram id="jyERGzDynktFHFRGN0ph" name="Page-1"> |
|||
<mxGraphModel dx="3321" dy="2867" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="450" y="-50" width="820" height="970" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font face="Roboto"><span style="font-size: 24px">Server(s)</span></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="710" y="-50" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;exitX=0.092;exitY=1.01;exitDx=0;exitDy=0;dashed=1;exitPerimeter=0;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="521"/> |
|||
<mxPoint x="800" y="560"/> |
|||
</Array> |
|||
<mxPoint x="803" y="521" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;dashed=1;" parent="1" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="800" y="520" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="800" y="680"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="33" value="" style="group" parent="1" vertex="1" connectable="0"> |
|||
<mxGeometry x="-140" y="-75" width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="29" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">https://someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="33" vertex="1"> |
|||
<mxGeometry x="60" y="27" width="380" height="250" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="32" value="" style="pointerEvents=1;shadow=0;dashed=0;html=1;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.laptop;strokeColor=none;" parent="33" vertex="1"> |
|||
<mxGeometry width="500" height="350" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="101" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="390" y="-190" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-132"/> |
|||
<mxPoint x="280" y="-132"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="34" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">DNS Servers</font>" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-60" y="-540" width="330" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="6" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="495" y="320" width="355" height="440" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">TLS Termination Proxy<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="525" y="330" width="280" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="85" target="6" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;entryX=0.073;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.075;exitY=0.998;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="62" target="78" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="917" y="754" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="62" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">FastAPI</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal"> app for: someapp.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="650" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="65" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">Another app</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">: another.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="50" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="66" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">One more app</font><font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px ; font-weight: normal">: onemore.example.com</font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="180" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="78" value="<font face="Roboto"><span style="font-size: 24px ; font-weight: 400">A Database</span></font>" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> |
|||
<mxGeometry x="895" y="780" width="300" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="85" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Plain response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="86" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="62" target="85" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="1030.0000000000005" y="649.9999999999995" as="sourcePoint"/> |
|||
<mxPoint x="850" y="540.0000000000005" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="1030" y="540"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="6" target="62" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="1240" y="390"/> |
|||
<mxPoint x="1240" y="700"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="84" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Decrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="890" y="350" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="100" target="34" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="65.05882352941171" y="-220" as="sourcePoint"/> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="89" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;dashed=1;" parent="1" source="32" target="100" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="110" y="-75" as="sourcePoint"/> |
|||
<mxPoint x="-4.941176470588289" y="-139.99999999999955" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-5" y="-90"/> |
|||
<mxPoint x="-5" y="-90"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="91" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="34" target="101" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="105" y="-280" as="sourcePoint"/> |
|||
<mxPoint x="390" y="-260" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="390" y="-430"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="97" target="32" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="340" y="480"/> |
|||
<mxPoint x="340" y="480"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="36" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto" style="font-size: 24px">Port 443 (HTTPS)</font>" style="ellipse;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="330" y="680" width="170" height="120" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=3;" parent="1" source="96" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="50" y="500" as="sourcePoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="50" y="740"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="93" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="96" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="300" y="350" as="sourcePoint"/> |
|||
<mxPoint x="55" y="330" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="160" y="340"/> |
|||
<mxPoint x="160" y="340"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="96" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted request for: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#82b366;strokeWidth=3;fillColor=#d5e8d4;" parent="1" vertex="1"> |
|||
<mxGeometry x="-10" y="400" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="100" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Who is: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="-210" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="101" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">IP:</span><br style="font-family: &#34;roboto&#34;"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">123.124.125.126</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="270" y="-290" width="240" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;strokeWidth=3;" parent="1" source="104" target="36" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="770"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="104" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">TLS Handshake</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="-110" y="300" width="230" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="32" target="104" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="-40" y="275" as="sourcePoint"/> |
|||
<mxPoint x="341.38784067832285" y="770" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="-40" y="290"/> |
|||
<mxPoint x="-40" y="290"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="97" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Encrypted response from: someapp.example.com</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeColor=#9673a6;strokeWidth=3;fillColor=#e1d5e7;" parent="1" vertex="1"> |
|||
<mxGeometry x="90" y="500" width="310" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="110" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=1;strokeWidth=3;" parent="1" source="36" target="97" edge="1"> |
|||
<mxGeometry relative="1" as="geometry"> |
|||
<mxPoint x="415" y="680" as="sourcePoint"/> |
|||
<mxPoint x="110" y="275" as="targetPoint"/> |
|||
<Array as="points"> |
|||
<mxPoint x="245" y="710"/> |
|||
</Array> |
|||
</mxGeometry> |
|||
</mxCell> |
|||
<mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> |
|||
<mxGeometry x="510" y="400" width="310" height="320" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="50" value="<font style="font-size: 24px" face="Roboto">HTTPS certificates<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="550.9" y="410" width="228.21" height="40" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="51" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">someapp.example.com</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="465" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="52" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">another.example.net</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="545" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="53" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">onemore.example.org</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#666666;strokeWidth=3;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1"> |
|||
<mxGeometry x="530" y="625" width="270" height="70" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="42" value="<font face="Roboto" data-font-src="https://fonts.googleapis.com/css?family=Roboto"><span style="font-size: 24px">IP:</span><br><span style="font-size: 24px">123.124.125.126</span><br></font>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="290" y="600" width="220" height="70" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 7.4 KiB |
@ -1,43 +0,0 @@ |
|||
<mxfile host="65bd71144e" modified="2020-11-28T18:13:19.199Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.51.1 Chrome/83.0.4103.122 Electron/9.3.3 Safari/537.36" etag="KPHuXUeExV3PdWouu_3U" version="13.6.5"> |
|||
<diagram id="zB4-QXJZ7ScUzHSLnJ1i" name="Page-1"> |
|||
<mxGraphModel dx="1154" dy="780" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0" extFonts="Roboto^https://fonts.googleapis.com/css?family=Roboto|Roboto Mono, mono^https://fonts.googleapis.com/css?family=Roboto+Mono%2C+mono"> |
|||
<root> |
|||
<mxCell id="0"/> |
|||
<mxCell id="1" parent="0"/> |
|||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="110" y="280" width="1350" height="620" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="3" value="<font style="font-size: 24px" face="Roboto">Package app<br>app/__init__.py</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="635" y="310" width="300" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="15" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Module app.main</span><br style="font-family: &#34;roboto&#34; ; font-size: 24px"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/main.py</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="140" y="430" width="360" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="16" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Module app.dependencies</span><br style="font-family: &#34;roboto&#34; ; font-size: 24px"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/dependencies.py</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="130" y="565" width="370" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="5" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="1030" y="430" width="400" height="260" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="8" value="<font style="font-size: 24px" face="Roboto">Subpackage app.internal<br></font><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/internal/__init__.py</span><font style="font-size: 24px" face="Roboto"><br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="1083.8438461538462" y="460" width="292.3076923076923" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="19" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Module app.internal.admin</span><br style="font-family: &#34;roboto&#34; ; font-size: 24px"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/internal/admin.py</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="1050" y="570" width="360" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="4" value="" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeWidth=4;" parent="1" vertex="1"> |
|||
<mxGeometry x="540" y="430" width="440" height="410" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="7" value="<font style="font-size: 24px" face="Roboto">Subpackage app.routers<br>app/routers/__init__.py<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontFamily=Roboto Mono, mono;FType=g;" parent="1" vertex="1"> |
|||
<mxGeometry x="599.2307692307693" y="460" width="321.53846153846155" height="80" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="17" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Module app.routers.items</span><br style="font-family: &#34;roboto&#34; ; font-size: 24px"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/routers/items.py</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="580" y="570" width="360" height="100" as="geometry"/> |
|||
</mxCell> |
|||
<mxCell id="18" value="<span style="font-family: &#34;roboto&#34; ; font-size: 24px">Module app.routers.users</span><br style="font-family: &#34;roboto&#34; ; font-size: 24px"><span style="font-family: &#34;roboto&#34; ; font-size: 24px">app/routers/users.py</span>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;" parent="1" vertex="1"> |
|||
<mxGeometry x="580" y="700" width="360" height="100" as="geometry"/> |
|||
</mxCell> |
|||
</root> |
|||
</mxGraphModel> |
|||
</diagram> |
|||
</mxfile> |
After Width: | Height: | Size: 604 KiB |
Before Width: | Height: | Size: 14 KiB |
@ -0,0 +1,5 @@ |
|||
# یادگیری |
|||
|
|||
اینجا بخشهای مقدماتی و آموزشهایی هستن که برای یادگیری **FastAPI** بهت کمک میکنن. |
|||
|
|||
میتونی اینو یه **کتاب**، یه **دوره آموزشی**، یا راه **رسمی** و پیشنهادی برای یادگیری FastAPI در نظر بگیری. 😎 |
@ -1,53 +1,165 @@ |
|||
# 이벤트: startup과 shutdown |
|||
# Lifespan 이벤트 |
|||
|
|||
필요에 따라 응용 프로그램이 시작되기 전이나 종료될 때 실행되는 이벤트 핸들러(함수)를 정의할 수 있습니다. |
|||
애플리케이션 **시작 전**에 실행되어야 하는 로직(코드)을 정의할 수 있습니다. 이는 이 코드가 **한 번**만 실행되며, **애플리케이션이 요청을 받기 시작하기 전**에 실행된다는 의미입니다. |
|||
|
|||
이 함수들은 `async def` 또는 평범하게 `def`으로 선언할 수 있습니다. |
|||
마찬가지로, 애플리케이션이 **종료될 때** 실행되어야 하는 로직(코드)을 정의할 수 있습니다. 이 경우, 이 코드는 **한 번**만 실행되며, **여러 요청을 처리한 후**에 실행됩니다. |
|||
|
|||
이 코드가 애플리케이션이 **요청을 받기 시작하기 전에** 실행되고, 요청 처리가 끝난 후 **종료 직전에** 실행되기 때문에 전체 애플리케이션의 **수명(Lifespan)**을 다룹니다. (잠시 후 "수명"이라는 단어가 중요해집니다 😉) |
|||
|
|||
이 방법은 전체 애플리케이션에서 사용해야 하는 **자원**을 설정하거나 요청 간에 **공유되는** 자원을 설정하고, 또는 그 후에 **정리**하는 데 매우 유용할 수 있습니다. 예를 들어, 데이터베이스 연결 풀 또는 공유되는 머신러닝 모델을 로드하는 경우입니다. |
|||
|
|||
|
|||
## 사용 사례 |
|||
|
|||
먼저 **사용 사례**를 예로 들어보고, 이를 어떻게 해결할 수 있는지 살펴보겠습니다. |
|||
|
|||
우리가 요청을 처리하기 위해 사용하고 싶은 **머신러닝 모델**이 있다고 상상해 봅시다. 🤖 |
|||
|
|||
이 모델들은 요청 간에 공유되므로, 요청마다 모델이 하나씩 있는 것이 아니라, 여러 요청에서 동일한 모델을 사용합니다. |
|||
|
|||
모델을 로드하는 데 **상당한 시간이 걸린다고 상상해 봅시다**, 왜냐하면 모델이 **디스크에서 많은 데이터를 읽어야** 하기 때문입니다. 따라서 모든 요청에 대해 모델을 매번 로드하고 싶지 않습니다. |
|||
|
|||
모듈/파일의 최상위에서 모델을 로드할 수도 있지만, 그러면 **모델을 로드하는데** 시간이 걸리기 때문에, 단순한 자동화된 테스트를 실행할 때도 모델이 로드될 때까지 기다려야 해서 **테스트 속도가 느려집니다**. |
|||
|
|||
이 문제를 해결하려고 하는 것입니다. 요청을 처리하기 전에 모델을 로드하되, 애플리케이션이 요청을 받기 시작하기 직전에만 로드하고, 코드가 로드되는 동안은 로드하지 않도록 하겠습니다. |
|||
|
|||
## Lifespan |
|||
|
|||
`FastAPI` 애플리케이션의 `lifespan` 매개변수와 "컨텍스트 매니저"를 사용하여 *시작*과 *종료* 로직을 정의할 수 있습니다. (컨텍스트 매니저가 무엇인지 잠시 후에 설명드리겠습니다.) |
|||
|
|||
예제를 통해 시작하고, 그 후에 자세히 살펴보겠습니다. |
|||
|
|||
우리는 `yield`를 사용하여 비동기 함수 `lifespan()`을 다음과 같이 생성합니다: |
|||
|
|||
{* ../../docs_src/events/tutorial003.py hl[16,19] *} |
|||
|
|||
여기서 우리는 모델을 로드하는 비싼 *시작* 작업을 시뮬레이션하고 있습니다. `yield` 앞에서 (가짜) 모델 함수를 머신러닝 모델이 담긴 딕셔너리에 넣습니다. 이 코드는 **애플리케이션이 요청을 받기 시작하기 전**, *시작* 동안에 실행됩니다. |
|||
|
|||
그리고 `yield` 직후에는 모델을 언로드합니다. 이 코드는 **애플리케이션이 요청 처리 완료 후**, *종료* 직전에 실행됩니다. 예를 들어, 메모리나 GPU와 같은 자원을 해제하는 작업을 할 수 있습니다. |
|||
|
|||
/// tip | 팁 |
|||
|
|||
`shutdown`은 애플리케이션을 **종료**할 때 발생합니다. |
|||
|
|||
새로운 버전을 시작해야 하거나, 그냥 실행을 멈추고 싶을 수도 있습니다. 🤷 |
|||
|
|||
/// |
|||
|
|||
### Lifespan 함수 |
|||
|
|||
먼저 주목할 점은, `yield`를 사용하여 비동기 함수(async function)를 정의하고 있다는 것입니다. 이는 `yield`를 사용한 의존성과 매우 유사합니다. |
|||
|
|||
{* ../../docs_src/events/tutorial003.py hl[14:19] *} |
|||
|
|||
함수의 첫 번째 부분, 즉 `yield` 이전의 코드는 애플리케이션이 시작되기 **전에** 실행됩니다. |
|||
|
|||
그리고 `yield` 이후의 부분은 애플리케이션이 완료된 후 **나중에** 실행됩니다. |
|||
|
|||
### 비동기 컨텍스트 매니저 |
|||
|
|||
함수를 확인해보면, `@asynccontextmanager`로 장식되어 있습니다. |
|||
|
|||
이것은 함수를 "**비동기 컨텍스트 매니저**"라고 불리는 것으로 변환시킵니다. |
|||
|
|||
{* ../../docs_src/events/tutorial003.py hl[1,13] *} |
|||
|
|||
파이썬에서 **컨텍스트 매니저**는 `with` 문에서 사용할 수 있는 것입니다. 예를 들어, `open()`은 컨텍스트 매니저로 사용할 수 있습니다: |
|||
|
|||
```Python |
|||
with open("file.txt") as file: |
|||
file.read() |
|||
``` |
|||
최근 버전의 파이썬에서는 **비동기 컨텍스트 매니저**도 있습니다. 이를 `async with`와 함께 사용합니다: |
|||
|
|||
```Python |
|||
async with lifespan(app): |
|||
await do_stuff() |
|||
``` |
|||
|
|||
컨텍스트 매니저나 위와 같은 비동기 컨텍스트 매니저를 만들면, `with` 블록에 들어가기 전에 `yield` 이전의 코드가 실행되고, `with` 블록을 벗어난 후에는 `yield` 이후의 코드가 실행됩니다. |
|||
|
|||
위의 코드 예제에서는 직접 사용하지 않고, FastAPI에 전달하여 사용하도록 합니다. |
|||
|
|||
`FastAPI` 애플리케이션의 `lifespan` 매개변수는 **비동기 컨텍스트 매니저**를 받기 때문에, 새로운 `lifespan` 비동기 컨텍스트 매니저를 FastAPI에 전달할 수 있습니다. |
|||
|
|||
{* ../../docs_src/events/tutorial003.py hl[22] *} |
|||
|
|||
## 대체 이벤트 (사용 중단) |
|||
|
|||
/// warning | 경고 |
|||
|
|||
이벤트 핸들러는 주 응용 프로그램에서만 작동합니다. [하위 응용 프로그램 - 마운트](./sub-applications.md){.internal-link target=_blank}에서는 작동하지 않습니다. |
|||
*시작*과 *종료*를 처리하는 권장 방법은 위에서 설명한 대로 `FastAPI` 애플리케이션의 `lifespan` 매개변수를 사용하는 것입니다. `lifespan` 매개변수를 제공하면 `startup`과 `shutdown` 이벤트 핸들러는 더 이상 호출되지 않습니다. `lifespan`을 사용할지, 모든 이벤트를 사용할지 선택해야 하며 둘 다 사용할 수는 없습니다. |
|||
|
|||
이 부분은 건너뛰셔도 좋습니다. |
|||
|
|||
/// |
|||
|
|||
## `startup` 이벤트 |
|||
*시작*과 *종료* 동안 실행될 이 로직을 정의하는 대체 방법이 있습니다. |
|||
|
|||
애플리케이션이 시작되기 전에 또는 종료될 때 실행해야 하는 이벤트 핸들러(함수)를 정의할 수 있습니다. |
|||
|
|||
응용 프로그램을 시작하기 전에 실행하려는 함수를 "startup" 이벤트로 선언합니다: |
|||
이 함수들은 `async def` 또는 일반 `def`로 선언할 수 있습니다. |
|||
|
|||
### `startup` 이벤트 |
|||
|
|||
애플리케이션이 시작되기 전에 실행되어야 하는 함수를 추가하려면, `"startup"` 이벤트로 선언합니다: |
|||
|
|||
{* ../../docs_src/events/tutorial001.py hl[8] *} |
|||
|
|||
이 경우 `startup` 이벤트 핸들러 함수는 단순히 몇 가지 값으로 구성된 `dict` 형식의 "데이터베이스"를 초기화합니다. |
|||
이 경우, `startup` 이벤트 핸들러 함수는 "database"라는 항목(단지 `dict`)을 일부 값으로 초기화합니다. |
|||
|
|||
하나 이상의 이벤트 핸들러 함수를 추가할 수도 있습니다. |
|||
여러 개의 이벤트 핸들러 함수를 추가할 수 있습니다. |
|||
|
|||
그리고 응용 프로그램은 모든 `startup` 이벤트 핸들러가 완료될 때까지 요청을 받지 않습니다. |
|||
애플리케이션은 모든 `startup` 이벤트 핸들러가 완료될 때까지 요청을 받기 시작하지 않습니다. |
|||
|
|||
## `shutdown` 이벤트 |
|||
### `shutdown` 이벤트 |
|||
|
|||
응용 프로그램이 종료될 때 실행하려는 함수를 추가하려면 `"shutdown"` 이벤트로 선언합니다: |
|||
애플리케이션이 종료될 때 실행되어야 하는 함수를 추가하려면, `"shutdown"` 이벤트로 선언합니다: |
|||
|
|||
{* ../../docs_src/events/tutorial002.py hl[6] *} |
|||
|
|||
이 예제에서 `shutdown` 이벤트 핸들러 함수는 `"Application shutdown"`이라는 텍스트가 적힌 `log.txt` 파일을 추가할 것입니다. |
|||
여기서, `shutdown` 이벤트 핸들러 함수는 `"Application shutdown"`이라는 텍스트를 `log.txt` 파일에 기록합니다. |
|||
|
|||
/// info | 정보 |
|||
|
|||
`open()` 함수에서 `mode="a"`는 "추가"를 의미합니다. 따라서 이미 존재하는 파일의 내용을 덮어쓰지 않고 새로운 줄을 추가합니다. |
|||
`open()` 함수에서 `mode="a"`는 "추가"를 의미하므로, 파일에 있는 기존 내용은 덮어쓰지 않고 새로운 줄이 추가됩니다. |
|||
|
|||
/// |
|||
|
|||
/// tip | 팁 |
|||
|
|||
이 예제에서는 파일과 상호작용 하기 위해 파이썬 표준 함수인 `open()`을 사용하고 있습니다. |
|||
이 경우, 우리는 표준 파이썬 `open()` 함수를 사용하여 파일과 상호작용하고 있습니다. |
|||
|
|||
따라서 디스크에 데이터를 쓰기 위해 "대기"가 필요한 I/O (입력/출력) 작업을 수행합니다. |
|||
따라서 I/O(입출력) 작업이 포함되어 있어 디스크에 기록되는 것을 "기다리는" 과정이 필요합니다. |
|||
|
|||
그러나 `open()`은 `async`와 `await`을 사용하지 않기 때문에 이벤트 핸들러 함수는 `async def`가 아닌 표준 `def`로 선언하고 있습니다. |
|||
하지만 `open()`은 `async`와 `await`를 사용하지 않습니다. |
|||
|
|||
그래서 우리는 이벤트 핸들러 함수를 `async def` 대신 일반 `def`로 선언합니다. |
|||
|
|||
/// |
|||
|
|||
### `startup`과 `shutdown`을 함께 사용 |
|||
|
|||
*시작*과 *종료* 로직이 연결될 가능성이 높습니다. 예를 들어, 무언가를 시작한 후 끝내거나, 자원을 획득한 후 해제하는 등의 작업을 할 수 있습니다. |
|||
|
|||
이러한 작업을 별도의 함수로 처리하면 서로 로직이나 변수를 공유하지 않기 때문에 더 어려워집니다. 값들을 전역 변수에 저장하거나 비슷한 트릭을 사용해야 할 수 있습니다. |
|||
|
|||
그렇기 때문에 위에서 설명한 대로 `lifespan`을 사용하는 것이 권장됩니다. |
|||
|
|||
## 기술적 세부사항 |
|||
|
|||
호기심 많은 분들을 위한 기술적인 세부사항입니다. 🤓 |
|||
|
|||
ASGI 기술 사양에 따르면, 이는 <a href="https://asgi.readthedocs.io/en/latest/specs/lifespan.html" class="external-link" target="_blank">Lifespan Protocol</a>의 일부이며, `startup`과 `shutdown`이라는 이벤트를 정의합니다. |
|||
|
|||
/// info | 정보 |
|||
|
|||
이벤트 핸들러에 관한 내용은 <a href="https://www.starlette.io/events/" class="external-link" target="_blank">Starlette 이벤트 문서</a>에서 추가로 확인할 수 있습니다. |
|||
Starlette의 `lifespan` 핸들러에 대해 더 읽고 싶다면 <a href="https://www.starlette.io/lifespan/" class="external-link" target="_blank">Starlette의 Lifespan 문서</a>에서 확인할 수 있습니다. |
|||
|
|||
이 문서에는 코드의 다른 영역에서 사용할 수 있는 lifespan 상태를 처리하는 방법도 포함되어 있습니다. |
|||
|
|||
/// |
|||
|
|||
## 서브 애플리케이션 |
|||
|
|||
🚨 이 lifespan 이벤트(`startup`과 `shutdown`)는 메인 애플리케이션에 대해서만 실행되며, [서브 애플리케이션 - Mounts](sub-applications.md){.internal-link target=_blank}에는 실행되지 않음을 유의하세요. |
|||
|
@ -0,0 +1,67 @@ |
|||
# 하위 응용프로그램 - 마운트 |
|||
|
|||
만약 각각의 독립적인 OpenAPI와 문서 UI를 갖는 두 개의 독립적인 FastAPI 응용프로그램이 필요하다면, 메인 어플리케이션에 하나 (또는 그 이상의) 하위-응용프로그램(들)을 “마운트"해서 사용할 수 있습니다. |
|||
|
|||
## **FastAPI** 응용프로그램 마운트 |
|||
|
|||
“마운트"이란 완전히 “독립적인" 응용프로그램을 특정 경로에 추가하여 해당 하위 응용프로그램에서 선언된 *경로 동작*을 통해 해당 경로 아래에 있는 모든 작업들을 처리할 수 있도록 하는 것을 의미합니다. |
|||
|
|||
### 최상단 응용프로그램 |
|||
|
|||
먼저, 메인, 최상단의 **FastAPI** 응용프로그램과 이것의 *경로 동작*을 생성합니다: |
|||
|
|||
{* ../../docs_src/sub_applications/tutorial001.py hl[3, 6:8] *} |
|||
|
|||
### 하위 응용프로그램 |
|||
|
|||
다음으로, 하위 응용프로그램과 이것의 *경로 동작*을 생성합니다: |
|||
|
|||
이 하위 응용프로그램은 또 다른 표준 FastAPI 응용프로그램입니다. 다만 이것은 “마운트”될 것입니다: |
|||
|
|||
{* ../../docs_src/sub_applications/tutorial001.py hl[11, 14:16] *} |
|||
|
|||
### 하위 응용프로그램 마운트 |
|||
|
|||
최상단 응용프로그램, `app`에 하위 응용프로그램, `subapi`를 마운트합니다. |
|||
|
|||
이 예시에서, 하위 응용프로그램션은 `/subapi` 경로에 마운트 될 것입니다: |
|||
|
|||
{* ../../docs_src/sub_applications/tutorial001.py hl[11, 19] *} |
|||
|
|||
### 자동으로 생성된 API 문서 확인 |
|||
|
|||
이제, `uvicorn`으로 메인 응용프로그램을 실행하십시오. 당신의 파일이 `main.py`라면, 이렇게 실행합니다: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ uvicorn main:app --reload |
|||
|
|||
<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
그리고 <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>에서 문서를 여십시오. |
|||
|
|||
메인 응용프로그램의 *경로 동작*만을 포함하는, 메인 응용프로그램에 대한 자동 API 문서를 확인할 수 있습니다: |
|||
|
|||
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image01.png"> |
|||
|
|||
다음으로, <a href="http://127.0.0.1:8000/subapi/docs" class="external-link" target="_blank">http://127.0.0.1:8000/subapi/docs</a>에서 하위 응용프로그램의 문서를 여십시오. |
|||
|
|||
하위 경로 접두사 `/subapi` 아래에 선언된 *경로 동작* 을 포함하는, 하위 응용프로그램에 대한 자동 API 문서를 확인할 수 있습니다: |
|||
|
|||
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image02.png"> |
|||
|
|||
두 사용자 인터페이스 중 어느 하나를 사용해야하는 경우, 브라우저는 특정 응용프로그램 또는 하위 응용프로그램과 각각 통신할 수 있기 때문에 올바르게 동작할 것입니다. |
|||
|
|||
### 기술적 세부사항: `root_path` |
|||
|
|||
위에 설명된 것과 같이 하위 응용프로그램을 마운트하는 경우, FastAPI는 `root_path`라고 하는 ASGI 명세의 매커니즘을 사용하여 하위 응용프로그램에 대한 마운트 경로 통신을 처리합니다. |
|||
|
|||
이를 통해, 하위 응용프로그램은 문서 UI를 위해 경로 접두사를 사용해야 한다는 사실을 인지합니다. |
|||
|
|||
하위 응용프로그램에도 역시 다른 하위 응용프로그램을 마운트하는 것이 가능하며 FastAPI가 모든 `root_path` 들을 자동적으로 처리하기 때문에 모든 것은 올바르게 동작할 것입니다. |
|||
|
|||
`root_path`와 이것을 사용하는 방법에 대해서는 [프록시의 뒷단](./behind-a-proxy.md){.internal-link target=_blank} 섹션에서 배울 수 있습니다. |