225 lines
4.5 KiB
JSON
225 lines
4.5 KiB
JSON
{
|
|
"version": "1.1",
|
|
"id": "component-flow",
|
|
"title": "component-flow runtime fixture",
|
|
"question": "Does the component-flow logical composition render correctly?",
|
|
"type": "data-flow",
|
|
"direction": "LR",
|
|
"audience": [
|
|
"renderer maintainer"
|
|
],
|
|
"summary": "Executable component-flow fixture.",
|
|
"alt": "Executable technical diagram fixture for the component-flow composition profile.",
|
|
"long_description": "This fixture validates the node roles, edges, and layout rules of the component-flow profile.",
|
|
"source_context": {
|
|
"document": "examples/runtime-profiles/fixture.md",
|
|
"document_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
|
|
"anchor": {
|
|
"kind": "line",
|
|
"value": 1,
|
|
"line": 1
|
|
}
|
|
},
|
|
"composition": {
|
|
"profile": "component-flow",
|
|
"diagram_only": true,
|
|
"reference_ids": [
|
|
"payment-event-flow"
|
|
],
|
|
"rationale": "Runtime regression fixture for component-flow.",
|
|
"focus_node": "api"
|
|
},
|
|
"groups": [],
|
|
"nodes": [
|
|
{
|
|
"id": "client",
|
|
"label": "클라이언트",
|
|
"kind": "actor",
|
|
"role": "source",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"shape": "actor"
|
|
},
|
|
{
|
|
"id": "gateway",
|
|
"label": "인증 게이트웨이",
|
|
"kind": "security",
|
|
"role": "service",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "api",
|
|
"label": "체크아웃 API",
|
|
"kind": "service",
|
|
"role": "service",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"emphasis": "primary"
|
|
},
|
|
{
|
|
"id": "db",
|
|
"label": "주문 저장소",
|
|
"kind": "database",
|
|
"role": "store",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"shape": "database"
|
|
},
|
|
{
|
|
"id": "provider",
|
|
"label": "결제 제공자",
|
|
"kind": "service",
|
|
"role": "service",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "bus",
|
|
"label": "이벤트 버스",
|
|
"kind": "queue",
|
|
"role": "sink",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"shape": "queue"
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "request",
|
|
"from": "client",
|
|
"to": "gateway",
|
|
"label": "HTTPS 결제 요청",
|
|
"kind": "request",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "validated",
|
|
"from": "gateway",
|
|
"to": "api",
|
|
"label": "검증된 요청",
|
|
"kind": "request",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "pending",
|
|
"from": "api",
|
|
"to": "db",
|
|
"label": "PENDING 기록",
|
|
"kind": "data",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "authorize",
|
|
"from": "api",
|
|
"to": "provider",
|
|
"label": "승인 요청",
|
|
"kind": "request",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "approved",
|
|
"from": "provider",
|
|
"to": "api",
|
|
"label": "승인 응답",
|
|
"kind": "response",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"style": "dashed"
|
|
},
|
|
{
|
|
"id": "paid",
|
|
"from": "api",
|
|
"to": "db",
|
|
"label": "PAID 갱신",
|
|
"kind": "data",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "event",
|
|
"from": "api",
|
|
"to": "bus",
|
|
"label": "payment.approved",
|
|
"kind": "publish",
|
|
"evidence": [
|
|
{
|
|
"start_line": 1,
|
|
"end_line": 1
|
|
}
|
|
],
|
|
"assumption": false,
|
|
"style": "dashed",
|
|
"emphasis": "primary"
|
|
}
|
|
],
|
|
"legend": [],
|
|
"metadata": {
|
|
"fixture": true
|
|
}
|
|
}
|