API Reference hawk_ex_dashboard v#0.1.0

Copy Markdown View Source

Modules

HAWK_EX Dashboard — LiveView developer tools for HAWK_EX.

The full audit log browser. Paginated, searchable (by action), sortable table of every HawkEx.Audit entry, with actor, resource, and timestamp columns.

Plans and active subscriptions. Lists every HawkEx.Billing.Plan and a paginated, searchable, sortable table of HawkEx.Billing.Subscription records. Clicking an account id opens a detail drawer for that subscription, addressable via the ?modal=<id> query param so it can be linked to directly (e.g. from the command palette).

The ⌘K / Ctrl+K command palette, mounted once inside the dashboard's shared app layout so it's available from every page. A debounced search (2+ characters) fans out to HawkEx.Billing.search_subscriptions/2, HawkEx.Audit.search/2, and HawkEx.CSV.search_exports/2, showing up to 4 results from each.

A read-only snapshot of the current HawkEx.Config — repo, account schema, PubSub, Oban, and CSV storage adapter — useful for confirming a deployment is wired up as expected. Never raises: unconfigured values render as "Not set".

A single label/value row for the read-only configuration listing on the Configuration page (HawkExDashboard.ConfigLive). Rendered inside a <dl> as a <dt>/<dd> pair.

CSV export job status. Paginated, searchable table of HawkEx.CSV.Export records, with a download link for any export whose status is "completed" (served by the dashboard's own download controller).

Placeholder shown in place of a table or panel when a data load has finished but returned nothing — an icon, a short title, and a supporting message. Used by HawkExDashboard.Table for its empty-results state.

The plan x feature entitlement matrix, sourced from HawkEx.Entitlements.matrix/0. Renders one column per active plan and one row per feature, with boolean- and limit-aware cell rendering.

Placeholder shown in place of a table or panel when a data load fails. Renders the error message alongside a "Retry" button that emits the "table_retry" event, handled by the HawkExDashboard.PaginatedSearch handle_event/3 clause injected into the parent LiveView.

A live-updating feed of HawkEx.Events broadcasts (subscription, audit, and CSV export events) received over the host application's configured PubSub. Supports pausing the feed — buffering a "N new" count without rendering — and filtering by event name prefix (subscription, csv, audit, or all).

Shared formatting helpers for displaying data across dashboard pages.

Shared imports/aliases for all HawkExDashboard LiveViews and function components. Use this instead of use Phoenix.Component directly, so CoreComponents (icon/1, etc.) and Nav are always available without per-file imports.

The dashboard's landing page. Shows a paginated, searchable, sortable table of recent activity pulled from HawkEx.Audit.recent/1 — the same audit log that backs HawkExDashboard.AuditLive, trimmed down here as an at-a-glance feed.

The page-level <h1> heading used at the top of every dashboard screen.

Shared pagination + search behavior for LiveViews using the HawkExDashboard.Table component with URL-backed page/search state.

A compact summary card for a single HawkEx.Billing.Plan — display name, status badge, and trial length. Used in the plan list at the top of the Billing page (HawkExDashboard.BillingLive).

Router integration for HAWK_EX Dashboard.

Shared table shell per design spec §5 — search, sort, pagination, loading/empty/error states. All state (search query, current page, sort column) is owned by the parent LiveView and passed in as assigns; this component only renders and emits events.

Renders a single entitlement on the Usage page (HawkExDashboard.UsageLive). Dispatches on feature.feature_type to show a boolean "included" badge, a numeric/unlimited plan limit, or a plain fallback for any other feature type.

Per-account usage lookup. Lists distinct account ids with an active or trialing subscription, and shows the selected account's current plan and entitlement values via HawkEx.Entitlements.for_account/1.