summaryrefslogtreecommitdiff
path: root/docs/md/fsm.mmd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/md/fsm.mmd')
-rw-r--r--docs/md/fsm.mmd67
1 files changed, 67 insertions, 0 deletions
diff --git a/docs/md/fsm.mmd b/docs/md/fsm.mmd
new file mode 100644
index 0000000..6f4ea24
--- /dev/null
+++ b/docs/md/fsm.mmd
@@ -0,0 +1,67 @@
+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