Liking cljdoc? Tell your friends :D

boundary.admin.shell.http

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.

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.
raw docstring

boundary.admin.shell.http.handlers.crud

Create / update entity handlers.

Create / update entity handlers.
raw docstring

boundary.admin.shell.http.handlers.delete

Delete + bulk-delete entity handlers.

Delete + bulk-delete entity handlers.
raw docstring

boundary.admin.shell.http.handlers.detail

Entity detail / edit page handlers (view existing + new-entity form).

Entity detail / edit page handlers (view existing + new-entity form).
raw docstring

boundary.admin.shell.http.handlers.inline

Inline editing handlers (Week 2): per-field edit widget, update, cancel.

Inline editing handlers (Week 2): per-field edit widget, update, cancel.
raw docstring

boundary.admin.shell.http.handlers.list

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.
raw docstring

boundary.admin.shell.http.support

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`.
raw docstring

boundary.admin.shell.module-wiring

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.

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.
raw docstring

boundary.admin.shell.permissions

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.
raw docstring

boundary.admin.shell.schema-repository

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.

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.
raw docstring

boundary.admin.shell.service

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
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
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close