HTTP routes for the admin interface.
This namespace wires the admin panel's normalized web routes to their
handlers. Handlers live in boundary.admin.shell.http.handlers.* and their
shared plumbing (middleware, error mappings, query/form parsing, handler
helpers) lives in boundary.admin.shell.http.support.
The admin UI provides:
All routes require authentication and admin role. Routes follow normalized format for consistent interceptor application.
HTTP routes for the admin interface. This namespace wires the admin panel's normalized web routes to their handlers. Handlers live in `boundary.admin.shell.http.handlers.*` and their shared plumbing (middleware, error mappings, query/form parsing, handler helpers) lives in `boundary.admin.shell.http.support`. The admin UI provides: - Entity list pages with search, sort, and pagination - Entity detail/edit pages with forms - Create and update handlers with validation - Delete and bulk delete operations - HTMX fragment handlers for dynamic updates All routes require authentication and admin role. Routes follow normalized format for consistent interceptor application.
Create / update entity handlers.
Create / update entity handlers.
Delete + bulk-delete entity handlers.
Delete + bulk-delete entity handlers.
Entity detail / edit page handlers (view existing + new-entity form).
Entity detail / edit page handlers (view existing + new-entity form).
Inline editing handlers (Week 2): per-field edit widget, update, cancel.
Inline editing handlers (Week 2): per-field edit widget, update, cancel.
Admin home + entity list handlers.
Renders the dashboard, the entity list page, and the HTMX table fragment.
Admin home + entity list handlers. Renders the dashboard, the entity list page, and the HTMX table fragment.
Shared plumbing for the admin HTTP layer.
Leaf namespace requiring no handler or route namespaces. Provides the
error mappings, query/form parsing, and handler helpers used by the handler
namespaces and the route definitions in boundary.admin.shell.http.
Shared plumbing for the admin HTTP layer. Leaf namespace requiring no handler or route namespaces. Provides the error mappings, query/form parsing, and handler helpers used by the handler namespaces and the route definitions in `boundary.admin.shell.http`.
Integrant lifecycle management for admin module.
This namespace defines Integrant initialization and shutdown methods for all admin module components:
Dependencies are injected via Integrant refs, maintaining FC/IS separation and enabling testability with mock implementations.
Integrant lifecycle management for admin module. This namespace defines Integrant initialization and shutdown methods for all admin module components: - Schema provider (ISchemaProvider implementation) - Admin service (IAdminService implementation) - Admin routes (HTTP routes) Dependencies are injected via Integrant refs, maintaining FC/IS separation and enabling testability with mock implementations.
Permission assertions for admin access control.
These wrappers throw typed ex-info (:type :forbidden) when a permission
check fails, so they live in the shell — the pure decision logic (the
can-*? predicates and explain-admin-access-denial) stays in
boundary.admin.core.permissions. HTTP handlers call these guards; the
platform error interceptor maps :forbidden to a 403 response.
Permission assertions for admin access control. These wrappers throw typed `ex-info` (`:type :forbidden`) when a permission check fails, so they live in the shell — the pure decision logic (the `can-*?` predicates and `explain-admin-access-denial`) stays in `boundary.admin.core.permissions`. HTTP handlers call these guards; the platform error interceptor maps `:forbidden` to a 403 response.
Schema repository implementation for database metadata retrieval.
This namespace provides the concrete implementation of ISchemaProvider, connecting to the database through existing adapter protocols to fetch table and column metadata.
Responsibilities:
Caching: computed entity configurations are cached in an atom inside the
long-lived SchemaRepository component (populated on first access). Table
schemas only change at migration/deploy time, so the cache lives as long
as the component. Use reset-cache! (or recreate the component via
(ig-repl/reset)) to invalidate after a migration.
Schema repository implementation for database metadata retrieval. This namespace provides the concrete implementation of ISchemaProvider, connecting to the database through existing adapter protocols to fetch table and column metadata. Responsibilities: - Fetch raw database metadata using adapter protocols - Coordinate with pure core functions for parsing and merging - Cache entity configurations for performance - Provide entity discovery based on configuration Caching: computed entity configurations are cached in an atom inside the long-lived SchemaRepository component (populated on first access). Table schemas only change at migration/deploy time, so the cache lives as long as the component. Use `reset-cache!` (or recreate the component via (ig-repl/reset)) to invalidate after a migration.
Admin service implementation for CRUD operations on entities.
This service provides database-agnostic CRUD operations on any entity managed by the admin interface. It coordinates between schema providers, permission checks, and database operations.
Responsibilities:
Admin service implementation for CRUD operations on entities. This service provides database-agnostic CRUD operations on any entity managed by the admin interface. It coordinates between schema providers, permission checks, and database operations. Responsibilities: - Execute CRUD operations with observability - Apply pagination, filtering, sorting - Validate permissions and entity access - Transform data between DB and application formats - Handle soft/hard deletes based on schema
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |