Skip to content
GitHub

Framework Composition Map

┌────────────────────────────────────────────────────┐
│ Ring 3 — App / Plugin code │
│ - declares Resources, custom RowActions, │
│ PageDefinitions, widgets, settings panels │
│ - registers via BaseAdminContributor │
└────────────────────────────────────────────────────┘
↑ depends only on contracts
┌────────────────────────────────────────────────────┐
│ Ring 2 — lexigram-admin │
│ - Resource/Action/Page/Form/Table orchestration │
│ - DashboardAssembler, NavigationAssembler │
│ - AdminRenderer, AdminRouter, AdminBuilder │
│ - resource-scoped RBAC (field/action/record) │
│ - admin-specific UX (filter bar, command palette) │
└────────────────────────────────────────────────────┘
↑ consumes
┌────────────────────────────────────────────────────┐
│ Ring 1 — Framework packages (existing) │
│ lexigram-contracts ← all admin-facing protocols │
│ lexigram (core), lexigram-ui, lexigram-web │
│ lexigram-auth (identity, sessions, OAuth) │
│ lexigram-tenancy (tenant resolution, isolation) │
│ lexigram-monitor (metrics, health, observability) │
│ lexigram-events (command/query/event buses) │
│ lexigram-cache, lexigram-tasks, lexigram-search, │
│ lexigram-resilience (OPTIONAL light-up) │
└────────────────────────────────────────────────────┘

Admin orchestrates; it does not implement identity, tenancy, or metrics.

PackageVersionPurpose
lexigram≥0.2DI container, Provider, Module, Result
lexigram-contracts≥0.2All admin-facing protocols, BaseAdminContributor
lexigram-ui≥0.2UI components: atoms, molecules, organisms
lexigram-web≥0.2ASGI / Starlette integration, AdminRouter
lexigram-sql≥0.2Database provider, data source protocol
lexigram-events≥0.2CQRS buses, domain events
IntegrationPackageDeclarative knobWhat it gives you
Cachelexigram-cacheResource.cacheable = Truelist() results cached with TTL; invalidation on create/update/delete
Taskslexigram-tasksBulkAction.task_runner = "tasks"Bulk actions dispatched as background tasks; progress visible in admin UI
Searchlexigram-searchResource.searchable = TrueResources indexed on create/update/delete; ?q= uses framework search engine
Resiliencelexigram-resilienceDataSource.resilient = TrueData-source calls wrapped in retry + circuit-breaker
Featureslexigram-featuresAdminBuilder.feature(name)Feature-flag gating for admin sections
Storagelexigram-storageFileField.storage = "s3"File uploads routed through framework storage backend
Authlexigram-auth(automatic when installed)Identity, sessions, JWT, OAuth delegated to framework
Tenancylexigram-tenancyAdminConfig.tenancy.enabled = TrueMulti-tenant resource scoping delegated to framework
Monitorlexigram-monitor(automatic when installed)Metrics, health checks, structured logging delegated to framework
  • Identity, sessions, OAuth, JWT — delegated to lexigram-auth. Admin keeps only resource-scoped RBAC (field/action/record-level permissions).
  • Tenant resolution and isolation — delegated to lexigram-tenancy. Admin keeps only tenant-scoped resource query wrappers.
  • Metrics, health checks, tracing — delegated to lexigram-monitor. Admin keeps only the dashboard health rollup widgets.
  • CQRS buses — delegated to lexigram-events. Admin defines only the message marker classes.