API Reference Jumar v#0.1.0

View Source

Modules

Jumar keeps the contexts that define your domain and business logic.

The Accounts context.

Database schema for each individual registered user account.

Email sending functionality for user accounts.

Any cryptographicly secure token that is associated with a user. This can be for password resets, logins, email confirmations, or other activities.

A GenStage ConsumerSupervisor implementation to consume events from Jumar.EventBus.Producer.

An event with data and metadata passed between contexts.

A GenStage implementation to produce events.

Wraps up common observability tools used for Logs, Traces, and Metrics.

A Phoenix.PubSub implementation for dispatching messages to ephemeral processes.

The main Cockroach DB Ecto.Repo instance for the application.

Restarts the Jumar.Repo database pool every 30 minutes to ensure we are connected to the closest node. When a database node shuts down, ecto will automatically reconnect to a node still standing. Once the node comes back online, ecto will not automatically reconnect. To deal with this shortcoming, this module was created.

Defines the scope of the caller to be used throughout the app.

The Jumar application supervisor that starts all required dependencies of the main Jumar application. This is separate from the Jumar.Application module to allow for easier use in third party projects, without also including web server processes.

An Elixir implementation of typeid using Jumar.Types.UUIDv7 or another Ecto UUID module. This allows using UUIDs as the database primary key, while transparently converting to a Stripe like ID (user_2x4y6z8a0b1c2d3e4f5g6h7j8k) by Ecto.

An Ecto type for UUIDv7 strings. This matches the similar Ecto.UUID module with additional awesome work done by sloanelybutsurely on the typeid-elixir package.

The JumarCli module contains custom commands that are used by mix release and the generated Docker file. This allows us to use the Elixir OptionParser for a more advanced CLI interface.

Usage: jumar

A module for CLI commands and subcommands that can be executed by the Jumar CLI. This follows a very similar pattern to Mix.Task in Elixir, but is used for the released application CLI in Jumar Docker.

Usage: jumar migrate

Usage: jumar rollback [version]

Usage: jumar seed [options]

Usage: jumar server

The entrypoint for defining your web interface, such as controllers, components, channels, and so on.

Provides a nice looking notification block.

A very basic centered page layout for authentication pages like the sign in and register pages.

Provides avatar components for displaying user profile pictures or initials.

Provides badge components.

You know, those things you click to do just about anything in a web application.

Provides core UI components.

A layout with a sidebar and navbar for authenticated pages.

Provides dialog components.

A module providing Internationalization with a gettext-based API.

Provides listbox components.

A layout with a stacked top navigation bar and footer. This is usuaully used for unauthenticated pages like the homepage or legal pages before the user accesses the dashboard.

You'll still get emails from people who accidentally deleted their account, but at least you tried.

The root HTML layout for the JumarWeb application.

Pulls telemetry metrics from various parts of the application.

Handles user authentication, session management, and "remember me" functionality.