Packages
mob_dev
0.5.6
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.17
0.5.16
0.5.15
0.5.14
0.5.13
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.37
0.3.35
0.3.34
0.3.33
0.3.28
0.3.26
0.3.23
0.3.21
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.18
0.2.17
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Development tooling for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
lib/mob_dev/security_scan/layer_result.ex
defmodule MobDev.SecurityScan.LayerResult do
@moduledoc """
Result of running a single scan layer (Hex deps, Gradle deps,
bundled runtime, C source, etc).
`status` is one of:
* `:ok` — layer ran successfully (findings may still be empty)
* `:tool_missing` — a required external scanner isn't installed;
the layer was skipped with a warning
* `:not_applicable` — the surface area doesn't exist in this project
(e.g. no `android/` directory)
* `:skipped` — the user passed `--skip <name>`
* `:error` — the layer failed unexpectedly; see `:error` field
Layers always return a LayerResult; they never raise. Callers
decide how to surface tool-missing or error states based on
whether the scan is in `--strict` mode.
"""
alias MobDev.SecurityScan.Finding
@type status :: :ok | :tool_missing | :not_applicable | :skipped | :error
@type t :: %__MODULE__{
name: atom(),
status: status(),
findings: [Finding.t()],
tools_used: [String.t()],
duration_ms: non_neg_integer() | nil,
error: String.t() | nil,
notes: [String.t()]
}
@derive Jason.Encoder
defstruct name: nil,
status: :ok,
findings: [],
tools_used: [],
duration_ms: nil,
error: nil,
notes: []
end