All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- System overview, artery hierarchy, build flow, room config diagrams - Veins docs: Jira, Slack, Google OAuth - Shunts docs: MercadoPago mock - DOT source files with generated SVGs - HTML viewers with navigation and full-screen mode Solves: - Freelance work standardization - Missing infrastructure replication (shunts) - Reliable testing environment (BDD -> Gherkin -> Tests)
62 lines
1.7 KiB
Plaintext
62 lines
1.7 KiB
Plaintext
digraph GoogleVein {
|
|
rankdir=LR;
|
|
compound=true;
|
|
fontname="Helvetica";
|
|
node [fontname="Helvetica", fontsize=11, shape=box, style="rounded,filled"];
|
|
edge [fontname="Helvetica", fontsize=10];
|
|
|
|
labelloc="t";
|
|
label="Google Vein - OAuth Flow";
|
|
fontsize=16;
|
|
|
|
// Client
|
|
subgraph cluster_client {
|
|
label="Soleprint";
|
|
style=filled;
|
|
color="#E8F5E9";
|
|
fillcolor="#E8F5E9";
|
|
|
|
app [label="Application", fillcolor="#C8E6C9"];
|
|
vein [label="Google Vein\n(artery/veins/google)", fillcolor="#A5D6A7"];
|
|
oauth [label="OAuth Handler\n(artery/oauth.py)", fillcolor="#81C784"];
|
|
}
|
|
|
|
// OAuth Flow
|
|
subgraph cluster_oauth {
|
|
label="OAuth 2.0";
|
|
style=filled;
|
|
color="#FFF8E1";
|
|
fillcolor="#FFF8E1";
|
|
|
|
auth_url [label="1. Authorization URL", fillcolor="#FFECB3"];
|
|
consent [label="2. User Consent", fillcolor="#FFE082"];
|
|
callback [label="3. Callback + Code", fillcolor="#FFD54F"];
|
|
tokens [label="4. Access + Refresh\nTokens", fillcolor="#FFCA28"];
|
|
}
|
|
|
|
// Google APIs
|
|
subgraph cluster_google {
|
|
label="Google APIs";
|
|
style=filled;
|
|
color="#E3F2FD";
|
|
fillcolor="#E3F2FD";
|
|
|
|
sheets [label="Sheets API", fillcolor="#BBDEFB"];
|
|
calendar [label="Calendar API", fillcolor="#BBDEFB"];
|
|
drive [label="Drive API", fillcolor="#BBDEFB"];
|
|
}
|
|
|
|
// Flow
|
|
app -> vein [label="get_sheets()"];
|
|
vein -> oauth [label="ensure_auth"];
|
|
oauth -> auth_url;
|
|
auth_url -> consent;
|
|
consent -> callback;
|
|
callback -> tokens;
|
|
tokens -> oauth [label="store"];
|
|
|
|
oauth -> sheets [label="Bearer token"];
|
|
oauth -> calendar [label="Bearer token"];
|
|
oauth -> drive [label="Bearer token"];
|
|
}
|