Arrea.Validation.Validator (Arrea v1.0.0)

Copy Markdown View Source

Validador de alto nivel para comandos y especificaciones de workers.

Compone Arrea.Validation.Rules para proporcionar puntos de entrada de validacion usados por Arrea.Command y la CLI.

Summary

Functions

Valida una cadena de comando shell.

Valida una lista de comandos, retornando todos los resultados.

Valida un nombre de shell contra la lista permitida.

Valida una especificacion de worker como keyword list.

Types

validation_error()

@type validation_error() :: atom() | {atom(), term()}

Functions

validate_command(cmd)

@spec validate_command(String.t()) :: {:ok, String.t()} | {:error, validation_error()}

Valida una cadena de comando shell.

Ejecuta todas las verificaciones de seguridad estandar en secuencia.

Retorna

  • {:ok, command} si el comando pasa todas las verificaciones
  • {:error, reason} en la primera verificacion que falle

Ejemplos

iex> Validator.validate_command("echo hello")
{:ok, "echo hello"}

iex> Validator.validate_command("rm -rf /")
{:error, {:dangerous_command, "rm -rf"}}

validate_commands(commands)

@spec validate_commands([String.t()]) ::
  {:ok, [String.t()]} | {:error, [{non_neg_integer(), validation_error()}]}

Valida una lista de comandos, retornando todos los resultados.

Retorna {:ok, commands} solo si TODOS los comandos pasan la validacion. Retorna {:error, errors} con una lista de tuplas {indice, razon} para los fallos.

validate_shell(shell)

@spec validate_shell(String.t()) :: {:ok, String.t()} | {:error, validation_error()}

Valida un nombre de shell contra la lista permitida.

validate_worker_spec(spec)

@spec validate_worker_spec(keyword()) ::
  {:ok, keyword()} | {:error, validation_error()}

Valida una especificacion de worker como keyword list.

Verifica que los campos requeridos esten presentes y tengan tipos validos.