Files
sap-architecture/references/layout.md
T
2026-07-24 20:47:16 +00:00

104 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Canvas layout recipe
The canonical SAP BTP examples use a **1169 × 827** landscape canvas, and this remains the safest default for new L2 diagrams. Architecture Center also contains larger landscape and portrait variants; when you start from one of those templates, preserve its canvas size instead of forcing it back to 1169 × 827.
## Coordinate grid
All placements below are snapped to the **10-px grid**. If you need to nudge something off-grid to make connector centers align, prefer moving by 10 at a time and keep the numbers integer.
```
┌──────────────────────────────────────────────────────────────────────────┐
│ Title (24pt bold #002A86, left-anchored) y=30..60 │
│ Subtitle (14pt #475E75) y=70..95 │
├─────────────┬────────────────────────────────────┬───────────────────────┤
│ User zone │ SAP BTP zone │ On-Premise zone │
│ x≈40..250 │ x≈270..880 │ x≈910..1140 │
│ w=210 │ w=610 │ w=230 │
│ stroke │ stroke #0070F2 fill #EBF8FF │ stroke #475E75 │
│ #475E75 │ │ fill #F5F6F7 │
│ fill white │ │ │
│ │ │ │
│ │ │ │
│ (y≈130..700 working area) │
└──────────────────────────────────────────────────────────────────────────┘
network bar
solid 4 px
at x=890..895
```
The network bar is a **single solid 4-px vertical line** between BTP and On-Prem (`strokeColor=#475E75;strokeWidth=4;endArrow=none`) — not a dashed rectangle. Next to it, a rotated text label `"Network"` (`rotation=-90;fontSize=12;fontStyle=1`) on white background.
## Zone-specific rules
### User / MCP Client zone (left column)
- `x=40, y=120, width=210, height≈580`
- Inline label `"MCP Client"` top-left, 16 pt bold `#475E75`
- Contains: optional user avatar (icon 64×80) + stacked client cards (VS Code, Claude Desktop, Copilot Studio, …) at 180×50 each, 20-px vertical gap
### SAP BTP zone (center column)
- `x=270, y=120, width=610, height≈580`
- Inline label `"SAP BTP"` top-left, 16 pt bold `#00185A`
- SAP logo (`image=img/lib/sap/SAP_Logo.svg`) top-right of the zone at `x=zone.right-90, y=zone.top+15, w=60, h=23` (or top-left at `x=zone.left+10, y=zone.top+10`)
- Inside: an inner white `Subaccount` frame at `x=300, y=170, width=560, height≈450`, stroke `#475E75`, fill `#FFFFFF`. Inside the Subaccount, stack the focus app card + bound services.
- **Bound services** always go in a separate white frame inside the BTP zone, stacked vertically as light-blue tiles (`#EBF8FF` fill, `#0070F2` stroke). Use the bundled service icons for visual grammar.
### On-Premise zone (right column)
- `x=910, y=120, width=230, height≈580`
- Inline label `"On-Premise"` top-left, 16 pt bold `#475E75`
- Typical content: `Cloud Connector` card + one or more backend system cards (S/4HANA, BW/4HANA, ECC)
## Pills on edges
Pills sit at the **midpoint of each edge**, floating above both zones. They share `parent="1"` with the zones (not a zone as parent) — this is why the validator exempts them from sibling-overlap checks.
Short imperative labels:
- `SIGN-IN` (green) — user auth
- `TRUST` (magenta, uppercase) — trust anchor
- `MCP TOOL CALL` (teal) — MCP JSON-RPC over HTTPS
- `mTLS · PP` (green) — Cloud Connector mutual TLS with Principal Propagation
- `OAUTH · JWT` (green) — XSUAA OAuth bearer
One pill per semantic step. Don't stack two pills on the same edge; break the edge into two steps if needed.
## Title band
```xml
<mxCell id="title-main" value="ARC-1 on SAP BTP Cloud Foundry"
style="text;html=1;fontFamily=Helvetica;fontSize=24;fontStyle=1;fontColor=#002A86;align=left;verticalAlign=middle;"
vertex="1" parent="1">
<mxGeometry x="40" y="30" width="1080" height="40" as="geometry"/>
</mxCell>
<mxCell id="title-sub" value="MCP client → XSUAA OAuth → ARC-1 → Cloud Connector → on-prem SAP"
style="text;html=1;fontFamily=Helvetica;fontSize=14;fontColor=#475E75;align=left;verticalAlign=middle;"
vertex="1" parent="1">
<mxGeometry x="40" y="70" width="1080" height="30" as="geometry"/>
</mxCell>
```
Keep the title under ~60 chars and the subtitle under ~100. Longer strings need wrapping which throws the coordinate math off.
## Legend
**Do not draw a legend inside the canvas.** The SAP ref-arch convention is:
- Edge pills are self-explanatory via color + label
- The flow narration below the embedded PNG (in Markdown / Confluence) spells out what each color means
When a selected SAP Architecture Center template already uses inline pills and no separate legend block, preserve that design. This matters for templates such as `ac_RA0029_AgenticAI_root.drawio`, where adding a large bottom legend forces the diagram away from the SAP reference layout and usually lowers the corpus score. If the user asks for a legend in that case, keep the inline pill labels and provide the legend explanation in the flow narration outside the canvas.
If the user explicitly asks for an inside-canvas legend, put it at `y≈730`, full-width, a single neutral frame with two rows (lines + blocks).
## Aspect ratio & margins
The 1169 × 827 canvas has a ~1.41 aspect ratio (A4 landscape). Leave:
- **40-px margin** on left and right (content lives at 40..1140)
- **120-px top margin** for title + subtitle
- **~100-px bottom margin** for the legend / whitespace
Zones fill the middle band evenly. Three zones → widths roughly `210 | 610 | 230` adding to 1050 with three 20-px gutters.