elektrine/apps/elektrine_nerve
maxfield 18a4eb8aeb feat(nerve): make Nerve a standalone product page
Move the vault off account settings onto /nerve with product-page chrome,
extract the LiveView template, and keep /account/nerve as a redirect.
2026-08-23 15:18:36 -04:00
..
lib feat(nerve): make Nerve a standalone product page 2026-08-23 15:18:36 -04:00
test refactor: extract oversized modules and split runtime config 2026-08-22 02:24:30 -04:00
.gitignore Initial commit 2026-07-30 01:36:18 -04:00
mix.exs Initial commit 2026-07-30 01:36:18 -04:00
README.md Initial commit 2026-07-30 01:36:18 -04:00

Elektrine Nerve

Standalone umbrella app for Nerve domain logic.

What lives here

  • Elektrine.Nerve context
  • Elektrine.Nerve.NerveEntry schema
  • Domain tests for create/list/retrieve/delete flows
  • Nerve LiveView, external API controller, and route macros under ElektrineNerveWeb.*

Current Integration

  • Uses Elektrine.Repo for persistence.
  • Requires explicit nerve setup with a browser-encrypted verifier payload.
  • Stores browser-encrypted ciphertext envelopes and never decrypts secrets server-side.
  • elektrine_web imports route macros from this app instead of owning the nerve UI/API modules directly.
  • The deploy scripts use the module id nerve.

If This Splits Out Later

  1. Replace Elektrine.Repo references with a configurable repo behaviour.
  2. Move migration ownership into this app/repo package.
  3. Replace direct Elektrine.Accounts.User coupling with a generic owner schema key.
  4. Publish as a library with install and migration docs.

License

AGPL-3.0-only (see ../../LICENSE).