feat: 가상화 문서들 추가
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -13,20 +13,20 @@
|
||||
"long_description": "왼쪽 browser session zone에는 OAuth token 없이 HttpOnly AP3_SESSION을 가진 브라우저가 있다. 오른쪽 server-side application zone에는 BFF, authorized-client store, 내부 Resource Server가 있다. 브라우저의 /bff/api/me 요청은 BFF에서 종료되고, BFF는 current authorized client를 조회해 server-held access token으로 Resource Server용 Bearer 요청을 조립한다.",
|
||||
"source_context": {
|
||||
"document": "document.md",
|
||||
"document_sha256": "df4d1a604c74e756672b5b40510abfedb8c67b39af280a5f51985ea9972f5371",
|
||||
"document_sha256": "e2cc061f683294c937f089ad874cbf7a617f7313c07a92c2148fb11287a0da37",
|
||||
"anchor": {
|
||||
"kind": "marker",
|
||||
"value": "ap3-bff-architecture",
|
||||
"line": 172
|
||||
"kind": "heading",
|
||||
"value": "AP3: browser token 비노출과 application-owned session을 맞바꾼다",
|
||||
"line": 190
|
||||
}
|
||||
},
|
||||
"composition": {
|
||||
"profile": "two-zone-pipeline",
|
||||
"profile": "component-flow",
|
||||
"diagram_only": true,
|
||||
"reference_ids": [
|
||||
"localization-pipeline"
|
||||
"payment-event-flow"
|
||||
],
|
||||
"rationale": "문서가 OAuth token 없는 browser boundary와 token을 보관하고 downstream 요청을 만드는 server-side BFF boundary를 명시적으로 대비하므로 두 zone을 가로지르는 pipeline이 적합하다.",
|
||||
"rationale": "경계는 group 으로 남기고 방향이 있는 경로로 그린다 — two-zone-pipeline 은 지역 안쪽 엣지 라벨을 캔버스 위쪽에 고정해 group 테두리를 덮는다.",
|
||||
"focus_node": "bff"
|
||||
},
|
||||
"groups": [
|
||||
@@ -38,8 +38,8 @@
|
||||
"description": "OAuth token 대신 HttpOnly AP3_SESSION을 보유하는 browser 경계.",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 166,
|
||||
"end_line": 168
|
||||
"start_line": 192,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -52,8 +52,8 @@
|
||||
"description": "BFF, server-side authorized client와 내부 Resource Server가 연결되는 backend 경계.",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 166,
|
||||
"end_line": 170
|
||||
"start_line": 192,
|
||||
"end_line": 196
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -74,8 +74,8 @@
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 166,
|
||||
"end_line": 168
|
||||
"start_line": 192,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -90,12 +90,13 @@
|
||||
"description": "브라우저 session을 현재 authorized client와 downstream Bearer 요청으로 변환하는 confidential client.",
|
||||
"details": [
|
||||
"bff-confidential",
|
||||
"oauth2Login"
|
||||
"oauth2Login",
|
||||
"/bff/api/me"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 166,
|
||||
"end_line": 170
|
||||
"start_line": 192,
|
||||
"end_line": 196
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -106,7 +107,7 @@
|
||||
"kind": "database",
|
||||
"role": "store",
|
||||
"group": "server-application-zone",
|
||||
"shape": "database",
|
||||
"shape": "box",
|
||||
"description": "BFF가 access와 refresh token을 보관하고 현재 authorized client를 조회하는 server-side state.",
|
||||
"details": [
|
||||
"access token",
|
||||
@@ -114,8 +115,8 @@
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 166,
|
||||
"end_line": 170
|
||||
"start_line": 192,
|
||||
"end_line": 196
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -129,8 +130,8 @@
|
||||
"description": "BFF가 만든 Bearer 요청을 받는 내부 보호 자원.",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 168,
|
||||
"end_line": 168
|
||||
"start_line": 194,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -141,12 +142,12 @@
|
||||
"id": "browser-to-bff",
|
||||
"from": "browser",
|
||||
"to": "bff",
|
||||
"label": "AP3_SESSION · /bff/api/me",
|
||||
"label": "AP3_SESSION",
|
||||
"kind": "request",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 168,
|
||||
"end_line": 168
|
||||
"start_line": 194,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -155,12 +156,12 @@
|
||||
"id": "bff-to-store",
|
||||
"from": "bff",
|
||||
"to": "authorized-client-store",
|
||||
"label": "현재 authorized client 조회",
|
||||
"label": "client 조회",
|
||||
"kind": "request",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 168,
|
||||
"end_line": 168
|
||||
"start_line": 194,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
@@ -169,13 +170,13 @@
|
||||
"id": "bff-to-resource-server",
|
||||
"from": "bff",
|
||||
"to": "resource-server",
|
||||
"label": "downstream Bearer 요청",
|
||||
"label": "Bearer 요청",
|
||||
"kind": "request",
|
||||
"emphasis": "primary",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 168,
|
||||
"end_line": 168
|
||||
"start_line": 194,
|
||||
"end_line": 194
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
|
||||
Reference in New Issue
Block a user