# Arke v0.6.2 - Table of Contents

Arke low code framework Core

## Modules

- [Arke](Arke.md)
- [Arke.Boundary.ArkeManager](Arke.Boundary.ArkeManager.md): This module manage the gen servers for the element specified in `Arke.Core.Arke`

- [Arke.Boundary.FileManager](Arke.Boundary.FileManager.md): Cache for signed URLs to avoid redundant signing requests.
Stores only `signed_url` and `expiration` keyed by `{unit_id, project}`.
Expired entries are purged every hour.

- [Arke.Boundary.UnitManager](Arke.Boundary.UnitManager.md)
- [Arke.Core.Arke](Arke.Core.Arke.md): Defines the skeleton of an Arke by defining its characteristics and the various parameters of which it is composed

- [Arke.Core.File](Arke.Core.File.md): Defines a file that can be used to store data

- [Arke.Core.Group](Arke.Core.Group.md):   Defines the structure of a Group in which more than one Arke will be grouped

- [Arke.Core.Parameter](Arke.Core.Parameter.md): Module to manage the defaults parameter
- [Arke.Core.Parameter.Binary](Arke.Core.Parameter.Binary.md): Module that define the struct of a Binary by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Binary
- [Arke.Core.Parameter.Boolean](Arke.Core.Parameter.Boolean.md): Module that define the struct of a Boolean by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Boolean
- [Arke.Core.Parameter.Date](Arke.Core.Parameter.Date.md): Module that define the struct of a Date by extending the Arke.Core.Parameter.base_parameters().
- [Arke.Core.Parameter.DateTime](Arke.Core.Parameter.DateTime.md): Module that define the struct of a DateTime by extending the Arke.Core.Parameter.base_parameters().
- [Arke.Core.Parameter.Dict](Arke.Core.Parameter.Dict.md): Module that define the struct of a Dict by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Dict
- [Arke.Core.Parameter.Dynamic](Arke.Core.Parameter.Dynamic.md): Module that define the struct of a Dynamic by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Dynamic
- [Arke.Core.Parameter.Float](Arke.Core.Parameter.Float.md): Module that define the struct of a Float by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Float
- [Arke.Core.Parameter.Integer](Arke.Core.Parameter.Integer.md): Module that define the struct of a Integer by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Integer
- [Arke.Core.Parameter.Link](Arke.Core.Parameter.Link.md): Module that define the struct of a Link by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Link
- [Arke.Core.Parameter.List](Arke.Core.Parameter.List.md): Module that define the struct of a Dict by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.Dict
- [Arke.Core.Parameter.String](Arke.Core.Parameter.String.md): Module that define the struct of a String by extending the Arke.Core.Parameter.base_parameters()
    {arke_struct} = Parameter.String
- [Arke.Core.Parameter.Time](Arke.Core.Parameter.Time.md): Module that define the struct of a Time by extending the Arke.Core.Parameter.base_parameters().
- [Arke.Core.Project](Arke.Core.Project.md):   Define a Project structure where more Arke will be grouped
      {arke_struct} = Project

- [Arke.Core.Query](Arke.Core.Query.md):   Struct which defines a Query

- [Arke.Core.Query.BaseFilter](Arke.Core.Query.BaseFilter.md):   Base struct of a BaseFilter:
  - parameter => %Arke.Core.Parameter.`ParameterType` => refer to `Arke.Core.Parameter`
  - operator => refer to [operators](#module-operators)
  - value => any => the value that the query will search for
  - negate => boolean => used to figure out whether the condition is to be denied
  - path => [Arke.Core.Parameter.ParameterType] => the path of the parameter 
- [Arke.Core.Query.Filter](Arke.Core.Query.Filter.md):   Base struct of a Filter:
  - logic => :and | :or => the logic of the filter
  - negate => boolean => used to figure out whether the condition is to be denied
  - base_filters (refer to `Arke.Core.Query.BaseFilter`).
- [Arke.Core.Query.LinkFilter](Arke.Core.Query.LinkFilter.md):   Base struct of a LinkFilter:
  - unit => %Arke.Core.`{arke_struct}`{} => the `arke_struct` of the unit which we want to filter on. See `Arke.Struct`
  - depth => integer => how many results we want to have at max
  - direction => "child" | "parent" => the direction the query will use to search,
  - type => the name of the connection we want to look at 
- [Arke.Core.Query.Order](Arke.Core.Query.Order.md):   Base struct Order:
  - parameter => %Arke.Core.Parameter.`ParameterType` => refer to `Arke.Core.Parameter`
  - direction => "child" | "parent" => the direction the query will use to search
  - path => [Arke.Core.Parameter.ParameterType] => the path of the parameter 
- [Arke.Core.Unit](Arke.Core.Unit.md):   Struct which defines a Unit
      {arke_struct} = Unit

- [Arke.Examples.Starter](Arke.Examples.Starter.md):   Module to start all the defaults gen server

- [Arke.QueryManager](Arke.QueryManager.md): Module to manage the CRUD operations to create the below elements and also manage the query to get the elements from db.
- [Arke.StructManager](Arke.StructManager.md):   Module that provides function for getting Arke and Unit structs.
  It also provides functions for encoding and decoding Units.

- [Arke.System](Arke.System.md)
- [Arke.System.Arke](Arke.System.Arke.md)
- [Arke.System.BaseArke](Arke.System.BaseArke.md)
- [Arke.System.BaseGroup](Arke.System.BaseGroup.md)
- [Arke.System.BaseParameter](Arke.System.BaseParameter.md)
- [Arke.System.Group](Arke.System.Group.md)
- [Arke.Utils.DatetimeHandler](Arke.Utils.DatetimeHandler.md)
- [Arke.Utils.DefaultData](Arke.Utils.DefaultData.md)
- [Arke.Utils.ErrorGenerator](Arke.Utils.ErrorGenerator.md): Documentation for `Arke.Utils.ErrorGenerator`

- [Arke.Utils.Export](Arke.Utils.Export.md)
- [Arke.Utils.FileStorage](Arke.Utils.FileStorage.md)
- [Arke.Utils.Gcp](Arke.Utils.Gcp.md)
- [Arke.Validator](Arke.Validator.md): This module provide validation before assign a certain value to an `{arke_struct}`

- Exceptions
  - [Arke.Errors.ArkeError](Arke.Errors.ArkeError.md)
  - [ParameterError](ParameterError.md)

## Mix Tasks

- [mix arke.export_data](Mix.Tasks.Arke.ExportData.md): Export data from a given project in the database and save them in json file.
  It exports, by default, all the arkes,groups, parameters and permissions
- [mix arke.seed_project](Mix.Tasks.Arke.SeedProject.md): Seed a given project in the database using file data.

