diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2024-12-13 13:46:12 +0100 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2024-12-13 13:46:12 +0100 |
| commit | ab50e998cb8ae245fb8ff40edc9d17879addc795 (patch) | |
| tree | 533d436980a96ae2dd99680b1e7abd02c8c9e483 /docs/md/building-client.md | |
| parent | 02a54aed212fb69dbacbbd8629ea1fe3b272cddf (diff) | |
Docs: Pre-build mermaid files without plugin
Diffstat (limited to 'docs/md/building-client.md')
| -rw-r--r-- | docs/md/building-client.md | 77 |
1 files changed, 2 insertions, 75 deletions
diff --git a/docs/md/building-client.md b/docs/md/building-client.md index 5c01872..77c4eaf 100644 --- a/docs/md/building-client.md +++ b/docs/md/building-client.md @@ -20,12 +20,7 @@ And finally the most important goal: ## Architecture In the previous section, we have already hinted a bit on the exact architecture. This section will expand upon it by giving a figure of the basic structure -```mermaid -graph TD; -A[Go]-- Compiles to -->B[C shared library .so/.dll]; -C[Language wrapper]-- Loads -->B -Client -- Uses --> C; -``` + As can be seen by this architecture, there is an intermediate layer between the client and the *shared* library. This wrapper eases the way of loading this library and then defining a more language specific API for it. In the eduvpn-common repo, we currently only support a Python wrapper. Clients themselves can define their own wrapper @@ -55,75 +50,7 @@ The eduvpn-common library uses a finite state machine internally to keep track o ### FSM example The following is an example of the FSM when the client has obtained a Wireguard/OpenVPN configuration from an eduVPN server -```mermaid -graph TD - -style Deregistered fill:cyan -Deregistered(Deregistered) -->|Register| Main - -style Main fill:white -Main(Main) -->|Deregister| Deregistered - -style Main fill:white -Main(Main) -->|Add a server| AddingServer - -style Main fill:white -Main(Main) -->|Get a VPN config| GettingConfig - -style Main fill:white -Main(Main) -->|Already connected| Connected - -style AddingServer fill:white -AddingServer(AddingServer) -->|Authorize| OAuthStarted - -style OAuthStarted fill:white -OAuthStarted(OAuthStarted) -->|Authorized| Main - -style GettingConfig fill:white -GettingConfig(GettingConfig) -->|Invalid location| AskLocation - -style GettingConfig fill:white -GettingConfig(GettingConfig) -->|Invalid or no profile| AskProfile - -style GettingConfig fill:white -GettingConfig(GettingConfig) -->|Successfully got a configuration| GotConfig - -style GettingConfig fill:white -GettingConfig(GettingConfig) -->|Authorize| OAuthStarted - -style AskLocation fill:white -AskLocation(AskLocation) -->|Location chosen| GettingConfig - -style AskProfile fill:white -AskProfile(AskProfile) -->|Profile chosen| GettingConfig - -style GotConfig fill:white -GotConfig(GotConfig) -->|Get a VPN config again| GettingConfig - -style GotConfig fill:white -GotConfig(GotConfig) -->|VPN is connecting| Connecting - -style Connecting fill:white -Connecting(Connecting) -->|VPN is connected| Connected - -style Connecting fill:white -Connecting(Connecting) -->|Cancel connecting| Disconnecting - -style Connected fill:white -Connected(Connected) -->|VPN is disconnecting| Disconnecting - -style Disconnecting fill:white -Disconnecting(Disconnecting) -->|VPN is disconnected| Disconnected - -style Disconnecting fill:white -Disconnecting(Disconnecting) -->|Cancel disconnecting| Connected - -style Disconnected fill:white -Disconnected(Disconnected) -->|Connect again| GettingConfig - -style Disconnected fill:white -Disconnected(Disconnected) -->|Renew| OAuthStarted -``` + The current state is highlighted in the <span style="color:cyan">cyan</span> color. |
