feat: 가상화 문서들 추가

This commit is contained in:
DongHyeonka
2026-09-10 08:54:05 +09:00
parent e9f6a93327
commit 43e1aadef0
695 changed files with 153404 additions and 12754 deletions
@@ -14,11 +14,11 @@
"long_description": "왼쪽 로그인 구간에는 Keycloak과 AP2 mediator, AP3 BFF, AP4 oauth2-proxy가 있다. Keycloak의 authorization code는 각 OAuth client 쪽으로 이동한다. 오른쪽 애플리케이션 요청 구간에는 AP2 브라우저, AP3 BFF, AP4 Nginx와 보호 자원이 있다. AP2는 token을 받는 mediator와 API를 호출하는 브라우저가 갈리고, AP3는 같은 BFF가 token 발급과 API 호출을 소유한다. AP4는 oauth2-proxy가 code 교환과 session 검증을 맡고 Nginx가 upstream 요청 연결과 identity header 조립을 맡는다.",
"source_context": {
"document": "document.md",
"document_sha256": "df4d1a604c74e756672b5b40510abfedb8c67b39af280a5f51985ea9972f5371",
"document_sha256": "e2cc061f683294c937f089ad874cbf7a617f7313c07a92c2148fb11287a0da37",
"anchor": {
"kind": "marker",
"value": "login-api-phase-split",
"line": 42
"kind": "heading",
"value": "로그인 흐름과 API 흐름은 같은 선이 아니다",
"line": 31
}
},
"composition": {
@@ -39,8 +39,8 @@
"description": "Authorization request, callback, code 교환과 로그인 상태 생성이 일어나는 구간.",
"evidence": [
{
"start_line": 37,
"end_line": 39
"start_line": 39,
"end_line": 41
}
],
"assumption": false
@@ -53,8 +53,8 @@
"description": "브라우저 입력부터 credential 변환, 보호 자원 검증과 최종 응답까지의 구간.",
"evidence": [
{
"start_line": 37,
"end_line": 40
"start_line": 39,
"end_line": 42
}
],
"assumption": false
@@ -88,8 +88,8 @@
"description": "AP2에서 token을 발급받는 주체.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -106,8 +106,8 @@
"description": "AP3에서 token을 발급받는 BFF의 로그인 책임.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -125,8 +125,8 @@
"description": "AP4에서 OIDC code 교환과 proxy session 검증을 맡는다.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -144,8 +144,8 @@
"description": "AP2에서 token 발급 주체와 달리 실제 API를 호출한다.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -162,8 +162,8 @@
"description": "AP3에서 token을 발급받은 같은 BFF가 API도 호출한다.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -181,8 +181,8 @@
"description": "AP4에서 upstream 요청을 연결하고 identity header를 조립한다.",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -197,11 +197,15 @@
"description": "애플리케이션 요청 구간에서 전달된 credential을 검증하고 최종 응답을 만든다.",
"evidence": [
{
"start_line": 40,
"end_line": 40
"start_line": 42,
"end_line": 42
}
],
"assumption": false
"assumption": false,
"details": [
"/api/me",
"/edge/me"
]
}
],
"edges": [
@@ -214,7 +218,11 @@
"evidence": [
{
"start_line": 33,
"end_line": 35
"end_line": 33
},
{
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -228,7 +236,11 @@
"evidence": [
{
"start_line": 33,
"end_line": 35
"end_line": 33
},
{
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -242,7 +254,11 @@
"evidence": [
{
"start_line": 33,
"end_line": 35
"end_line": 33
},
{
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -255,8 +271,8 @@
"kind": "handoff",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -269,8 +285,8 @@
"kind": "responsibility",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -283,8 +299,8 @@
"kind": "handoff",
"evidence": [
{
"start_line": 35,
"end_line": 35
"start_line": 37,
"end_line": 37
}
],
"assumption": false
@@ -293,12 +309,16 @@
"id": "ap2-api-request",
"from": "ap2-browser-caller",
"to": "protected-resource",
"label": "/api/me · Bearer",
"label": "Bearer",
"kind": "request",
"evidence": [
{
"start_line": 35,
"end_line": 40
"start_line": 37,
"end_line": 37
},
{
"start_line": 41,
"end_line": 42
}
],
"assumption": false
@@ -307,12 +327,16 @@
"id": "ap3-api-request",
"from": "ap3-bff-caller",
"to": "protected-resource",
"label": "/api/me · Bearer",
"label": "Bearer",
"kind": "request",
"evidence": [
{
"start_line": 35,
"end_line": 40
"start_line": 37,
"end_line": 37
},
{
"start_line": 41,
"end_line": 42
}
],
"assumption": false
@@ -321,12 +345,16 @@
"id": "ap4-upstream-request",
"from": "ap4-nginx-caller",
"to": "protected-resource",
"label": "/edge/me · identity",
"label": "identity header",
"kind": "request",
"evidence": [
{
"start_line": 35,
"end_line": 40
"start_line": 37,
"end_line": 37
},
{
"start_line": 41,
"end_line": 42
}
],
"assumption": false