From f7938ab9b8e053129451e90e17ada8fecbf03fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sat, 1 Dec 2018 16:57:15 +0100 Subject: [PATCH] Add 'Using the Framework' chapter skeleton --- content/using_the_framework.tex | 28 ++++++++++++++++++++++++++++ thesis.tex | 1 + 2 files changed, 29 insertions(+) create mode 100644 content/using_the_framework.tex diff --git a/content/using_the_framework.tex b/content/using_the_framework.tex new file mode 100644 index 0000000..40def3b --- /dev/null +++ b/content/using_the_framework.tex @@ -0,0 +1,28 @@ +\chapter{Using the Framework} + +In this section I am going to dive into further detail on how client code is supposed +to use the framework, some of the design decisions behind this and how all all of this +is integrated into the \texttt{solvable} Docker image. + +To use the framework one has to do several things to get started. +The main poins include: +\begin{itemize} + \item define an FSM describing the flow of the tutorial + \item implement required event handlers (that might trigger state transitions in the FSM, + interact with non-TFW code and do various things that might be needed during a challenge) + \item define what processes should be running inside the container besides the TFW + server (which is started automatically) + \item set up reverse proxying for any user-facing network applications such as webservers, + SSH and friends +\end{itemize} +At first all these tasks are quite overwhelming. +Remember that witchcraft is what we practice here after all. +To overcome the high initial learning curve of getting familiar with the framework +I have created a repository called \emph{test-tutorial-framework} with the purpose of +providing a project template for developers looking to create challenges using the +framework. +This repository is a really simple client codebase that is suitable for +developing TFW itself as well (a good place to tests for the framework). +Let us take a look at this to acquire a greater understanding of how the framework operates. + +\section{Project Structure} \ No newline at end of file diff --git a/thesis.tex b/thesis.tex index 25cfe70..7b909fa 100644 --- a/thesis.tex +++ b/thesis.tex @@ -44,6 +44,7 @@ \include{content/introduction} \include{content/architecture} \include{content/a_tour_of_tfw} +\include{content/using_the_framework} \listoffigures \lstlistoflistings{}