API Reference SvEx v#0.4.2
Modules
Provenance and drift checking for the checked-in generator baselines.
The wall clock, as the one module under lib/ allowed to read it.
The whole scaffolder config for one project, as a struct — one child struct
per section of the templates in priv/templates.
The :api project preset — priv/templates/base_api_app.exs as code.
Which asset surfaces are generated — the assets: section.
API surface detail — the assets.api: block.
UI surface detail — the assets.ui: block.
Authentication surfaces — the auth: section.
Caching backend and client mode — the cache: section.
Container tooling — the container: section. Type-independent: podman and
docker are valid for :otp and :web alike.
Sidecar containers to generate — the container.sidecars: block.
The closed domains the config sections draw their atom values from.
Optional capability toggles — the features: section.
Raised when a config section is given a key it does not declare, a value outside that key's domain, or a combination the canonical rules forbid.
The :otp project preset — priv/templates/base_otp_app.exs as code.
Identity of the project being scaffolded — the project: section.
Shared behaviour for the sections of SvEx.Config.Otp.
Encryption and secret sourcing — the security: section. Type-independent:
it applies to :otp and :web alike.
The shape of a resolved SvEx.Config, read off the sections themselves.
Supervision tree and repo ownership — the otp: section.
The :web project preset — priv/templates/base_web_app.exs as code.
Content hashing for manifest file entries.
Reads and writes plugin.exs — the generated lock file (SDD 8.2).
One file a plugin owns or contributes to (SDD 7.3).
Raised when plugin.exs is plain data of the wrong shape — a missing or
unknown key, an unsupported schema_version, or a field whose value is
outside its domain.
One plugin's entry in plugin.exs (SDD 8.2): what it is, which version
of it was applied, where that version came from, when it was applied, and
every file it owns or contributes to.
Reads and writes manifest.exs — a plugin's manifest (SDD 7.1).
Installs a derived plugin into a target project (SDD 7.3).
The contract a plugin implements.
Decides what a hunk means (SDD 7.3).
Turns an observed diff into a plugin (SDD R1, 10).
Compares a meta project against its baseline (SDD R1).
Reads what a raw working project changed in mix.exs (SDD R1, D10).
Records an applied plugin in the target's plugin.exs (SDD 8.2, R5, R6).
A validated, absolute path to the project SvEx is acting on.
Raised when a project-relative path would escape the target root.
Raised when a path is not a usable project root.
Codec for the plain-data .exs files SvEx owns — target.exs and
plugin.exs.
Adds a child to a project's supervision tree, structurally.
Raised when a supervision tree a plugin must extend cannot be located.
Places a contribution inside a config/*.exs, by that file's own rules.
Raised when a config/*.exs site a plugin must contribute to cannot be
located.
Raised when an .exs file is not the plain data SvEx expects.
Raised when a term cannot be written as re-readable .exs source.
Locates and patches constructs in a mix.exs, structurally (SDD R5, R6).
Raised when a mix.exs construct a plugin must edit cannot be located.
Converts a meta-project file into a name-agnostic EEx template, and back.