Skip to content

API Reference

Complete reference documentation for the Vyuh Entity System. This page provides quick-reference tables for all major classes, with links to detailed pages.

Core Classes

ClassDescription
EntityBaseAbstract base class for all entities
EntityConfigurationUnified configuration for an entity type
EntityApiAbstract CRUD API for entities
EntitySystemPluginPlugin that registers entities and manages services
AuthorizationProviderSynchronous authorization provider

Layout Classes

ClassDescription
EntityLayoutsContainer for all layout types
LayoutBaseBase class for all layout configurations
CollectionLayoutLayout for entity list views (tables, grids)
EntityLayoutLayout for single entity display (detail tabs, summary)
AggregateLayoutLayout for dashboards and analytics
EntityItemLayoutSingle-entity snapshot rendering primitive
EntityComparisonLayoutMulti-entity side-by-side rendering primitive

Editor Classes

ClassDescription
EntityEditorAbstract base for entity editors
StandardEntityEditorNon-regulated editor (no verification)
SignatureDrivenEditorRegulated editor — resolves verification at runtime
EntityEditorPartAbstract base for editor parts (tabs)
FormEditorPartBuilt-in form-based editor part
CustomEditorPartCallback-based custom editor part
EntityTransformerData transformation between entity and form
DefaultEntityTransformerPass-through transformer
SnakeCaseEntityTransformerAuto camelCase ↔ snake_case transformer

Action Classes

ClassDescription
EntityActionAction on a single entity (inline, menu)
CollectionActionBulk or header action
ActionGroupDropdown grouping of EntityActions
EditorActionSave/draft/cancel actions used by the editor
StandardEntityActionsDefault Edit / Deactivate / Create helpers
VersionableActionsDefaults for entities mixing in Versionable

Service Classes

ClassDescription
EntityServiceAbstract base for all entity services
EntityServicesContainerType-safe service registry
QueryCacheServiceStale-while-revalidate query caching
EntityNameCacheServiceEntity name/id cache
EntityLocalizationServicei18n for entity strings
EntityRealtimeServiceReal-time entity update subscriptions
SignatureVerificationServiceE-signature verification
EntityHelpServiceContextual help for entities
SearchSyncServiceSearch index synchronization
EntityDataExtractorSearch document extraction
ErrorDisplayServiceUI error rendering

Permission / Authorization Classes

ClassDescription
AuthorizationProviderAbstract authorization interface (synchronous)
OpenAuthorizationProviderAllow-all provider for dev
AuthorizeGuardWidget that hides / disables UI by Authorize
AuthorizeFallbackSealed class — what to show when denied
AuthorizeFallbackRegistryRegistry for custom fallback widgets
AuthorizationGateApp-shell gate tying the routed UI to provider lifecycle
EntityRoutePermissionsRoute-level access control
EntityPermissionCacheStatic cache for entity permission results

Data Types & Enums

TypeDescription
FieldKeyEnum of standard entity field names (id, name, title, description, audit and version fields)
FieldKeyMapCustomizable mapping from FieldKey to JSON keys
EntitySelectionModeHow list selection is handled: none, navigate, responsive
EditorDisplayModeEditor display: panel, fullWidth, adaptive
EditorActionTypeEditor action style: save, draft, cancel
HttpMutationMethodHTTP verb for HttpEntityApi.mutate: post, put, patch, delete
MutationTypeCache mutation kind: create, update, delete
EntityReferenceLightweight entity reference (id, name, description)
FieldDefinition<T>Declarative field definition for columns and filters
ColumnPriorityessential / high / normal / low priority constants
UIVisibilitySealed class — RouteVisibility, MenuVisibility, SearchVisibility, DashboardVisibility

Mixins

MixinDefined inDescription
Auditablemodels/auditable.dartcreatedAt, updatedAt, createdBy, updatedBy
HasCodemodels/entity_mixins.dartEntities with a code property
HasDescriptionmodels/entity_mixins.dartEntities with a description property
HasActiveStatusmodels/entity_mixins.dartEntities with an isActive property
HasStatusmodels/entity_mixins.dartEntities with a status property
Versionableversioning_audit/models/versioned_entity.dartVersion tracking (versionNumber, isActive)
Draftabledrafts/draftable.dartDraft support (draftMetadata, helper getters)

Quick Reference

EntityBase

dart
abstract class EntityBase extends ContentItem {
  final String id;
  final String name;

  String get displayTitle;       // defaults to name
  String get displaySubtitle;    // defaults to ''
  Map<String, String> get displayProperties;  // defaults to {}

  Map<String, dynamic> toJson();
}

createdAt / updatedAt / createdBy / updatedBy come from the Auditable mixin. Versioning fields come from Versionable. Draft state comes from Draftable.

EntityConfiguration

dart
final class EntityConfiguration<T extends EntityBase> {
  final EntityMetadata metadata;
  final EntityApi<T> api;
  final EntityLayouts<T> layouts;
  final EntityEditor<T>? editor;
  final EntityActions<T> actions;
  final EntityRouting routing;
  final List<FieldDefinition<T>>? fields;
  final List<FilterPreset>? filterPresets;
  final Map<String, String>? referenceFields;

  NavigationPathBuilder get route;
  List<RouteBase> buildRoutes();
  void register(EntitySystemPlugin plugin);
  EntityConfiguration<T> copyWith({...});
  static void clearAllPermissionCaches();
}

EntityApi

dart
@immutable
abstract class EntityApi<T extends EntityBase> {
  final String entityType;
  final String schemaType;
  final String? defaultSortField;
  final bool hasDrafts;

  Future<T?> getOne(String id);
  Future<List<T>> getMany({...});
  Future<T> create(T entity, {String? remarks});
  Future<T> update(String id, T entity, {String? remarks});
  Future<bool> delete(String id);
  Future<int> count({String? query, Map<String, dynamic>? filters});
  Future<int?> findPosition(String entityId, {...});
  Future<List<T>> getDrafts({...});
  Future<int> countDrafts({String? query, Map<String, dynamic>? filters});
  T fromJson(Map<String, dynamic> json);
}

EntitySystemPlugin

dart
class EntitySystemPlugin extends Plugin with RouteObservers {
  final String baseUrl;
  final AuthorizationProvider authorizationProvider;
  final SignatureVerificationProvider? signatureProvider;
  final FilterWidgetDelegate? filterWidgetDelegate;
  EntityServicesContainer get services;

  void register<T extends EntityBase>(EntityConfiguration<T> config);
  EntityConfiguration<T>? getConfig<T extends EntityBase>();
  EntityConfiguration<EntityBase>? getConfigByIdentifier(String identifier);
  bool isRegistered<T extends EntityBase>();
  List<RouteBase> generateRoutes();
  Future<void> registerService<T extends EntityService>(T service);
}

Detailed Pages

  • EntityBase — Base class, mixins, FieldKey, entity reference
  • EntityConfiguration — Configuration, metadata, routing, UIVisibility
  • ActionsEntityAction, CollectionAction, ActionGroup, helpers
  • EntityApi — CRUD API, HTTP implementation, caching, related APIs
  • Layouts — Layout base, list, entity, aggregate, item, comparison
  • Editors — Editor configuration, parts, transformers, lifecycle
  • PermissionsAuthorizationProvider, AuthorizeGuard, route permissions
  • Services — Plugin, service container, built-in services
  • Glossary — Alphabetical index of all entity-system terms