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.