# arke_server v0.8.0-rc.0 - Table of Contents

> Arke server

## Modules

- [ArkeServer](ArkeServer.md): The entrypoint for defining your web interface, such
as controllers, channels and so on.
- [ArkeServer.ApiSpec](ArkeServer.ApiSpec.md)
- [ArkeServer.ArkeController](ArkeServer.ArkeController.md): Documentation for  `ArkeServer.ArkeController`.

- [ArkeServer.ArkeDevFunctionController](ArkeServer.ArkeDevFunctionController.md)
- [ArkeServer.AuthController](ArkeServer.AuthController.md): Documentation for `ArkeServer.AuthController`. Used from the controller and via API not from CLI

- [ArkeServer.Endpoint](ArkeServer.Endpoint.md): Module which define the Plug used for each call

- [ArkeServer.ErrorHandlers.Auth](ArkeServer.ErrorHandlers.Auth.md): 
- [ArkeServer.ErrorHandlers.SSOAuth](ArkeServer.ErrorHandlers.SSOAuth.md): 
- [ArkeServer.GroupController](ArkeServer.GroupController.md):           Documentation for `ArkeServer.ParameterController`

- [ArkeServer.HealthController](ArkeServer.HealthController.md)
- [ArkeServer.Mailer](ArkeServer.Mailer.md)
- [ArkeServer.OAuth.AuthInfo](ArkeServer.OAuth.AuthInfo.md)
- [ArkeServer.OAuth.Core](ArkeServer.OAuth.Core.md)
- [ArkeServer.OAuth.Provider.Apple](ArkeServer.OAuth.Provider.Apple.md)
- [ArkeServer.OAuth.Provider.Facebook](ArkeServer.OAuth.Provider.Facebook.md)
- [ArkeServer.OAuth.Provider.Google](ArkeServer.OAuth.Provider.Google.md)
- [ArkeServer.OAuth.Provider.Microsoft](ArkeServer.OAuth.Provider.Microsoft.md)
- [ArkeServer.OAuth.UserInfo](ArkeServer.OAuth.UserInfo.md)
- [ArkeServer.OAuthController](ArkeServer.OAuthController.md): Auth controller responsible for handling Ueberauth responses

- [ArkeServer.Openapi.ArkeControllerSpec](ArkeServer.Openapi.ArkeControllerSpec.md): Definition of the ApiSpec for `ArkeServer.ArkeController`.

- [ArkeServer.Openapi.AuthControllerSpec](ArkeServer.Openapi.AuthControllerSpec.md): Definition of the ApiSpec for `ArkeServer.AuthController`.

- [ArkeServer.Openapi.GroupControllerSpec](ArkeServer.Openapi.GroupControllerSpec.md): Definition of the ApiSpec for `ArkeServer.GroupController`.

- [ArkeServer.Openapi.OAuthControllerSpec](ArkeServer.Openapi.OAuthControllerSpec.md): Definition of the ApiSpec for `ArkeServer.OAuthController`.

- [ArkeServer.Openapi.ParameterControllerSpec](ArkeServer.Openapi.ParameterControllerSpec.md): Definition of the ApiSpec for `ArkeServer.ParameterController`.

- [ArkeServer.Openapi.ProjectControllerSpec](ArkeServer.Openapi.ProjectControllerSpec.md): Definition of the ApiSpec for `ArkeServer.ProjectController`.

- [ArkeServer.Openapi.Responses](ArkeServer.Openapi.Responses.md)
- [ArkeServer.Openapi.Spec](ArkeServer.Openapi.Spec.md)
- [ArkeServer.Openapi.StructControllerSpec](ArkeServer.Openapi.StructControllerSpec.md): Definition of the ApiSpec for `ArkeServer.StructController`.

- [ArkeServer.Openapi.TopologyControllerSpec](ArkeServer.Openapi.TopologyControllerSpec.md): Definition of the ApiSpec for `ArkeServer.TopologyController`.

- [ArkeServer.Openapi.UnitControllerSpec](ArkeServer.Openapi.UnitControllerSpec.md): Definition of the ApiSpec for `ArkeServer.UnitController`.

- [ArkeServer.ParameterController](ArkeServer.ParameterController.md)
- [ArkeServer.Plugs.AuthPipeline](ArkeServer.Plugs.AuthPipeline.md): Pipeline To ensure that the user is always authenticated and authorized

- [ArkeServer.Plugs.BuildFilters](ArkeServer.Plugs.BuildFilters.md)
- [ArkeServer.Plugs.GetProject](ArkeServer.Plugs.GetProject.md): Plug to get the project from the request header

- [ArkeServer.Plugs.GetUnit](ArkeServer.Plugs.GetUnit.md): Plug to get a unit from the id in the url

- [ArkeServer.Plugs.ImpersonateAuthPipeline](ArkeServer.Plugs.ImpersonateAuthPipeline.md): Pipeline to ensure authentication of user and impersonate user

- [ArkeServer.Plugs.NotAuthPipeline](ArkeServer.Plugs.NotAuthPipeline.md): Pipeline for all the non-authorized endpoints

- [ArkeServer.Plugs.OAuth](ArkeServer.Plugs.OAuth.md)
- [ArkeServer.Plugs.Permission](ArkeServer.Plugs.Permission.md)
- [ArkeServer.Plugs.SSOAuthPipeline](ArkeServer.Plugs.SSOAuthPipeline.md): Pipeline to ensure the existence of an arke user from a sso jwt token

- [ArkeServer.Plugs.SSONotAuthPipeline](ArkeServer.Plugs.SSONotAuthPipeline.md): Pipeline for all the non-authorized endpoints

- [ArkeServer.ProjectController](ArkeServer.ProjectController.md):     Documentation for  `ArkeServer.ProjectController`.

- [ArkeServer.ResponseManager](ArkeServer.ResponseManager.md): Module to standardize the responses.
The response body can be formatted as follow:
  - %{items: [...], count: integer, messages: [...]}
  - %{content: %{items: [...], count: integer, messages: [...]}}
  - {content: ..., messages: [...]}
If the status is 204 then the body will be empty
- [ArkeServer.Router](ArkeServer.Router.md): Module where all the routes are defined. Too see run in the CLI: `mix phx.routes ArkeServer.Router`

- [ArkeServer.Routes](ArkeServer.Routes.md): Available routes
- [ArkeServer.Schemas](ArkeServer.Schemas.md)
- [ArkeServer.Schemas.CreateUnitExample](ArkeServer.Schemas.CreateUnitExample.md): Create unit example
- [ArkeServer.Schemas.GroupExample](ArkeServer.Schemas.GroupExample.md): Group example
- [ArkeServer.Schemas.IntegerParameter](ArkeServer.Schemas.IntegerParameter.md): IntegerParameterUnit
- [ArkeServer.Schemas.IntegerParameterUnit](ArkeServer.Schemas.IntegerParameterUnit.md): Integer unit parameter
- [ArkeServer.Schemas.StringParameter](ArkeServer.Schemas.StringParameter.md): StringParameterUnit
- [ArkeServer.Schemas.StringParameterUnit](ArkeServer.Schemas.StringParameterUnit.md): String unit parameter
- [ArkeServer.Schemas.UnitExample](ArkeServer.Schemas.UnitExample.md): Unit example
- [ArkeServer.Schemas.UnitParameter](ArkeServer.Schemas.UnitParameter.md): Parameter example
- [ArkeServer.Schemas.UnitStruct](ArkeServer.Schemas.UnitStruct.md): Unit Struct
- [ArkeServer.Schemas.UserExample](ArkeServer.Schemas.UserExample.md): User example
- [ArkeServer.Schemas.UserParams](ArkeServer.Schemas.UserParams.md): Signin Parameter
- [ArkeServer.StructController](ArkeServer.StructController.md):  Documentation for`ArkeServer.StructController

- [ArkeServer.Swoosh.Adapters.Mailtrap](ArkeServer.Swoosh.Adapters.Mailtrap.md): An adapter that sends email using the Mailtrap API.
- [ArkeServer.Swoosh.Adapters.OneSignal](ArkeServer.Swoosh.Adapters.OneSignal.md): An adapter that sends email using the OneSignal API.
- [ArkeServer.TopologyController](ArkeServer.TopologyController.md): Documentation for  `ArkeServer.TopologyController`.

- [ArkeServer.UnitController](ArkeServer.UnitController.md)
- [ArkeServer.Utils.Apple](ArkeServer.Utils.Apple.md)
- [ArkeServer.Utils.OneSignal](ArkeServer.Utils.OneSignal.md)
- [ArkeServer.Utils.QueryFilters](ArkeServer.Utils.QueryFilters.md)
- [ArkeServer.Utils.QueryOrder](ArkeServer.Utils.QueryOrder.md)
- [ArkeServer.Utils.QueryProcessor](ArkeServer.Utils.QueryProcessor.md)

