Implementing ActiveQL
TypeScript Types Reference

TypeScript Types Reference

This page provides type definitions for ActiveQL's main configuration interfaces in table format for easy reference.

Core Configuration Types

RuntimeConfig

Configuration for the ActiveQL Runtime:

PropertyTypeDefaultDescription
domainGraphDomainGraphrequiredDomain graph from DomainGraphBuilder
namestring'ActiveQL'Name of this Runtime (for logging)
environment'development' | 'test' | 'stage' | 'production''development'Runtime environment
dataStore() => Promise<DataStore>SQLiteFactory method for DataStore implementation
fileHandler() => FileHandlerReferenceFileHandlerFactory method for FileHandler implementation
beforeInit(runtime: Runtime) => void | Promise<void>Callback before Runtime initialization
afterInit(runtime: Runtime) => void | Promise<void>Callback after Runtime initialization
localeFn(req: IncomingMessage) => string() => 'en'Determine locale from request
entity(config: EntityConfig) => EntityCustom Entity factory
operation(config: OperationType) => OperationCustom Operation factory
entityResolver(config: EntityConfig) => EntityResolverCustom EntityResolver factory
entityAccessor(config: EntityConfig) => EntityAccessorCustom EntityAccessor factory
entityManager(config: EntityConfig) => EntityManagerCustom EntityManager factory
pubsubPubSubEnginePubSub engine for subscriptions
schemaBuilderSchemaBuilder[]Additional schema builders
featureToggle{[name: string]: boolean | Function}Feature toggle configuration
seedMutationQueryMutationConfigCustom seed mutation config
generateTypesMapbooleanfalseGenerate TypeScript types map

DomainConfiguration

The main configuration object describing your API domain:

PropertyTypeDescription
entity{[name: string]: EntityConfig}Entity definitions
enum{[name: string]: string[] | EnumConfig}Enum definitions
type{[name: string]: TypeConfig}Custom type definitions
operation{[name: string]: OperationType}Operation definitions
query{[name: string]: QueryMutationConfig}Custom query definitions
mutation{[name: string]: QueryMutationConfig}Custom mutation definitions
subscription{[name: string]: SubscriptionConfig}Custom subscription definitions
decisionTable{[name: string]: DecisionTableConfig}Decision table definitions
restCall{[name: string]: RestCallConfig}REST call integrations
action{[name: string]: ActionConfig}Scheduled actions
attributeShortcuts{[name: string]: AttributeConfig}Reusable attribute configs
defaultsobjectDefault configs for entities, operations, etc.
mcpMCPServerConfigNEW: Model Context Protocol integration
realmstringRealm for multi-tenant support
init(runtime: Runtime) => void | Promise<void>Runtime initialization callback
extendSchema(runtime: Runtime) => stringExtend GraphQL schema
contextFn(req, runtime) => anyCustom context function
expressionContextFn(runtime) => anyExpression context function
route{[path: string]: RouteConfig}Express routes

EntityConfig

Configuration for an entity:

PropertyTypeDescription
attributes{[name: string]: string | AttributeConfig}Entity attributes
assocTostring | string[] | AssocToTypeHas-one relationships
assocToManystring | string[] | AssocToManyTypeHas-many relationships
assocFromstring | string[]Reverse has-many relationships
assocBystring | string[]Reverse has-one relationships
indicationstring | string[] | FunctionDisplay text for items
uiEntityUIConfigAdmin UI configuration
permissionsEntityPermissionsTypeRole-based permissions
validationValidationTypeValidation function or config
stateEngineEntityStateEngineConfigNEW: State machine configuration
timeValidationTimeValidationTypeTime interval validation
seedsnumber | SeedConfigSeed data configuration
typesQuerybooleanEnable/disable types query
typeQuerybooleanEnable/disable type query
createMutationbooleanEnable/disable create mutation
updateMutationbooleanEnable/disable update mutation
deleteMutationbooleanEnable/disable delete mutation
statsQuerybooleanEnable/disable stats query
implementsstring | string[]Interface implementation
abstractbooleanMark as abstract entity
interfacebooleanMark as interface entity
unionstring[]Union type members
realmstringEntity realm
collectionstringDatabase collection name
pathstringUI path
beforeSave(item, runtime) => anyBefore save hook
afterSave(item, runtime) => anyAfter save hook
beforeDelete(item, runtime) => anyBefore delete hook
afterDelete(id, runtime) => anyAfter delete hook
jsonResultboolean | FunctionCustom JSON transformation

AttributeConfig

Configuration for an entity attribute:

PropertyTypeDefaultDescription
typestringrequiredString, Int, Float, Boolean, Date, DateTime, JSON, File, or custom
listbooleanfalseIs array/list type
requiredbooleanfalseIs required field
uniquebooleanfalseMust be unique
createInputbooleantrueInclude in create input
updateInputbooleantrueInclude in update input
queryBybooleanfalseGenerate queryBy query
filterablebooleantrueCan be used in filter
sortablebooleantrueCan be used for sorting
validationAttributeValidationTypeValidation rules
defaultValueany | FunctionDefault value or function
timeSeriesTimeSeriesConfigTime-dependent values
descriptionstringSchema documentation

EntityStateEngineConfig (NEW)

State machine configuration for entities:

PropertyTypeDefaultDescription
stateAttributestring'state'Attribute holding the state
initialstringInitial state value
exposebooleantrueGenerate state query and mutation
transitionEnumNamestringautoName for transition enum
stateQueryNamestringautoName for state query
stateMutationNamestringautoName for state transition mutation
transition{[name: string]: StateEngineTransition}Transition definitions
observeEntityStateEngineObserve[]Auto-trigger transitions
contextEntityStateEngineContextContext variables

StateEngineTransition

PropertyTypeDescription
fromstring | string[]Source state(s)
tostringTarget state
conditionstring | FunctionFEEL expression or function
decisionTablestringReference to decision table
beforeTransition(item, runtime) => anyBefore transition hook
afterTransition(item, runtime) => anyAfter transition hook

EntityStateEngineObserve

PropertyTypeDescription
mutationstringWatch this mutation
entitystringWatch this entity
whenstring | FunctionCondition to trigger
transitionstringTransition to perform

OperationType

Configuration for a complex operation:

PropertyTypeDescription
input{[name: string]: string | OperationInputConfig}Input field definitions
validationOperationValidationTypeValidation config
dispositions{[path: string]: any | Function}Data transformations
onContextCreate(context) => anyOn context creation
beforeValidation(context) => anyBefore validation
beforeSave(context) => anyBefore save
afterSave(context) => anyAfter save
buildResult(context) => anyBuild result
afterBuildResult(context) => anyAfter build result
resultTypestringGraphQL result type
resultConfigResultConfigResult configuration
permissionsOperationPermissionsTypePermissions
graphqlType'query' | 'mutation'GraphQL operation type
descriptionstringSchema documentation

OperationInputConfig

PropertyTypeDescription
typestringInput type
requiredbooleanIs required
listbooleanIs array/list
cardinalityCardinalityTypeNEW: Min/max constraints
readonlybooleanNEW: Read-only field
validationInputValidationTypeValidation rules
refstringEntity reference shortcut
assocOperationTypeNested operation

Admin UI Configuration Types

ActiveAdminConfig

Main configuration for the Admin UI:

PropertyTypeDefaultDescription
pathstring'/active-admin'Base path for admin UI
titlestring | Function'ActiveQL Admin'UI title
entities{[name: string]: EntityUIConfiguration}Entity UI configs
menuActiveAdminMenuConfigautoMenu configuration
login(runtime, props) => Promise<{token?}>Login function
principalForToken(token, runtime) => Promise<Principal>Token to principal
pageSizenumber20Default page size
assocFromTableSizenumber10AssocFrom table size
selectVsSearchThresholdnumber10Dropdown vs search threshold
routesActiveUIRoutesCustom routes
controllerFnControllerFactoryFnCustom controller factory
viewPathstringCustom view templates path
contentActiveAdminContentCustom content blocks
localestring'en'Default locale
i18nI18nDictionaryInternationalization dictionary
i18nInit(activeAdmin) => void | Promise<void>I18n initialization
i18nLookup(activeAdmin, path, principal?) => stringI18n lookup function
data{[name: string]: DataFn}NEW: Custom data functions
saveFiles(entityUI, item, files) => Promise<void>File save handler
getFileUrl(entityUI, url) => Promise<string>File URL resolver
uploadTempPathstringTemp upload path
init(activeAdmin) => void | Promise<void>Initialization callback
entityPath(params) => string | undefinedCustom entity path generator

EntityUIConfiguration

Configuration for how an entity appears in the Admin UI:

PropertyTypeDescription
collectionTitlestring | FunctionCollection page title
itemTitlestring | FunctionItem page title
fields{[name: string]: false | FieldUIConfiguration}Field configurations
indexEntityUIIndexConfigurationIndex/list page config
showEntityUIShowConfigurationDetail/show page config
newEntityUINewConfigurationNew/create page config
editEntityUIEditConfigurationEdit page config
assocFromEntityUIAssocFromConfigurationReverse association config

EntityUIIndexConfiguration

PropertyTypeDescription
fieldsstring[]Fields to show in list
actions{[name: string]: EntityActionConfig}Custom actions

EntityUIShowConfiguration

PropertyTypeDescription
fieldsstring[]Fields to show in detail view
actions{[name: string]: EntityActionConfig}Custom actions
contentContentBlockConfig[]NEW: Custom content blocks (maps, templates)

EntityActionConfig

PropertyTypeDescription
labelstring | FunctionAction label
confirmboolean | stringConfirmation prompt
newWindowbooleanOpen in new window
actionstring | FunctionAction handler

ContentBlockConfig (NEW)

PropertyTypeDescription
titlestring | FunctionBlock title
content(params) => Promise<string | RenderContent>Content renderer

RenderContent can be:

  • { template: string, props?: object } - Template component
  • { map: { latitude: number, longitude: number } } - Map component

FieldUIConfiguration

Configuration for individual fields:

PropertyTypeDescription
labelstring | FunctionField label
hintstring | FunctionField hint text
value(params) => anyExtract display value
formValue(params) => anyExtract form value
render(params) => stringRender to HTML
formPartial(fieldUI) => stringForm partial template path

ActiveAdminMenuConfig (NEW)

Menu configuration including built-in menus:

PropertyTypeDescription
DeveloperDeveloperMenu | falseNEW: Developer tools menu
QueryMutationMenuType | MenuTypeFn | falseNEW: Auto-generated query/mutation menu
EntitiesEntityMenu | EntityMenuFn | falseNEW: Entity navigation menu
Extra{[name: string]: MenuType | MenuTypeFn}Custom menu groups

DeveloperMenu (NEW)

PropertyTypeDescription
seedMenuAction | falseSeed database action
graphqlMenuAction | falseGraphQL Studio link
swaggerMenuAction | falseSwagger/REST API docs link
plantumlMenuAction | falseEntity diagram link
repositoryMenuAction | falseRepository link
configurationMenuAction | falseShow configuration link

MenuAction

PropertyTypeDescription
labelstringMenu item label
pathstringNavigation path
newWindowbooleanOpen in new window
confirmboolean | stringConfirmation prompt
action(params) => Promise<MenuActionResult>Action handler

DataStore Types

DataStore (Abstract)

Key methods:

MethodParametersReturnsDescription
init(domainGraph)Promise<void>Initialize datastore
beginTransaction()Promise<void>Start transaction
commitTransaction()Promise<void>Commit transaction
rollbackTransaction()Promise<void>Rollback transaction
create(entity, attrs)Promise<EntityItem>Create entity item
findById(entity, id)Promise<EntityItem>Find by ID
findByIds(entity, ids)Promise<EntityItem[]>Find by IDs
update(entity, attrs)Promise<EntityItem>Update entity item
delete(entity, id)Promise<void>Delete entity item
truncate(entity)Promise<void>Delete all items
findByExpression(entity, expression, sort?, paging?)Promise<EntityItem[]>Complex queries
findByAttribute(entity, attrValue, attrName?)Promise<EntityItem>Find by attribute
findByFilter(entity, filter)Promise<EntityItem[]>Find by filter
getEntityStats(entity, filter?)Promise<EntityStats>Get statistics
getFilterType(type)GraphQLInputTypeGet filter type

PgDataStoreOptions

PostgreSQL DataStore configuration:

PropertyTypeDescription
indexAttributesstring[]Attributes to index
maxPageSizenumberMaximum page size
createEntityViewsbooleanCreate SQL views for entities
dropAllViewsbooleanDrop all views before creating
supressIndexWarningbooleanSuppress index warnings
...ClientConfigvariousPostgreSQL connection config (host, port, user, password, database, ssl, etc.)

MCP Integration Types (NEW)

MCPServerConfig

Model Context Protocol configuration:

PropertyTypeDescription
server(runtime) => McpServerCustom MCP server
asStreamableHttpbooleanUse HTTP transport
tool{[name: string]: MCPResolveFn | MCPToolConfig}Tool definitions
resource{[name: string]: MCPResourceConfig}Resource definitions
systemPromptstringSystem prompt for AI

MCPToolConfig

PropertyTypeDescription
descriptionstringTool description
inputSchemaobjectJSON schema for inputs
resolveMCPResolveFnTool resolver function

MCPResourceConfig

PropertyTypeDescription
descriptionstringResource description
mimeTypestringResource MIME type
resolve(runtime) => Promise<MCPResourceResult>Resource resolver

See Also