Getting StartedMindbricks Project Guide
Getting Started

Mindbricks GUI Guide

A Human-Readable Guide to the Mindbricks Platform UI with Pattern-Aware Explanations.

1. Project Level

Entering a project brings you to the Project Home.

A Mindbricks project is defined by:

  • Project Settings → maps to MindbricksApplication.projectSettings

  • Authentication → maps to ProjectAuthentication

  • BFF Service → maps to BFFService

  • Notification Service → maps to NotificationService

  • Services → maps to Service[]

Agent Ada (the AI architect) remains available in the sidebar to help update or generate patterns.


2. Project Home

Shows:

  • Auto-generated documentation

  • All generated services (auth, bff, notification)

  • All user-created services

  • Entry points for deeper configuration

This page is conceptual — it does not directly write patterns, but is the central navigation anchor.


3. Project Settings Page

Maps to: MindbricksApplication.projectSettings pattern

Use this page to define:

  • Project name, fullname, avatar

  • Stripe settings

  • AI provider keys (OpenAI, Anthropic)

  • Custom variables (injected into service libraries, Business APIs, and templates)

Key how-to’s:

  • Use Custom Variables to store environment-like values accessible by MScript.

  • Stripe settings activate the StripeOrderConfig system inside services.

  • Enable Authentication when your system requires login/security.

Related patterns: ProjectSettings, StripeSettings, AiSettings, PipelineTemplates.


4. Authentication Module

The Authentication module is one of the most important UI sections. It configures the ProjectAuthentication pattern:

  • login behavior

  • identity structure

  • verification flows

  • access control model

  • SSO

  • user & tenant data properties

Below is the user-friendly version of how everything connects visually.


4.1 Authentication → Authentication Essentials

Maps to: authenticationEssentials JWTAuthentication, SSOAuth, RemoteServiceAuthentication, RemoteSessionSettings, ApiKeyAuthentication.

What you configure:

  • JWT Tokens

    • Token lifetime, key rotation
  • SSO

    • Provider structure

    • Mapping external profiles (emailPropertyInProfile, userNamePropertyInProfile, etc.)

  • Remote Service Authentication

    • Authenticate the API using a remote service
  • Remote Sessions

    • Use a remote service as session store
  • API Key Authentication

    • A token model for automated clients

When to use it:

  • Enable JWT for most applications

  • Use SSO for enterprise integrations

  • Use API Keys for machine-to-machine communication


4.2 Authentication → Login Definition

Maps to: loginDefinition pattern.

What you configure:

  • Super Admin credentials

  • Username structure (asFullname or asNamePair)

  • User mobile/email settings

  • 2FA requirements

  • Verification requirements

  • Auto Avatar scripts (MScript)

  • User Groups (if enabled)

  • Multi-Tenant Mode (tenantSettings)

Pattern mapping examples:

UI field → pattern

  • “User Name Type” → loginDefinition.userSettings.userNameType

  • “User Register Is Public” → userRegisterIsPublic

  • “Use Multi Tenant Feature” → tenantSettings.useMultiTenantFeature


4.3 Authentication → Verification Services

Maps to: verificationServices and all nested verification subpatterns.

What you configure: Each verification type:

  • Password reset

  • Email/Mobile verification

  • Email2FA / Mobile2FA

  • Verification template (link or code)

  • resendTimeWindow, expireTimeWindow

MScript-driven Templates: You define verificationTemplate which formats body and link variables.


4.4 Authentication → Access Control

Maps to: accessControl, permissionBasics, roleSettings, permissionTypes, objectBasedSettings, attributeBasedSettings, customRoleLookups.

UI lets you:

  • Enable RBAC (rbacIsActive)

  • Define Roles (rolesObject)

  • Enable PBAC (pbacIsActive)

  • Create permission groups

  • Enable object-based or attribute-based authorization

  • Add ABAC rules using MScript Query

  • Add logical roles (customRoleLookups)

This page configures the entire platform authorization model.


4.5 Authentication → User / Tenant Properties

Maps to: ProjectAuthentication.userProperties ProjectAuthentication.tenantProperties.

These pages use Data Object Property Collection Manager, but simplified for the user and tenant.

You can add:

  • Additional user custom fields

  • Additional tenant custom fields

All property patterns apply, including:

  • Index settings

  • Relations

  • Static Join

  • Filter settings

  • Calculated fields

  • Enum definitions


5. BFF Service

Maps to: BFFService + DataView[].


5.1 BFF Service → Main Page

Shows documentation and generated code for your BFF Service.


5.2 BFF Service → Data Views

This is a UI for designing DataView patterns. The most powerful read-model builder of Mindbricks.

Each DataView you define becomes:

  • A stored Elasticsearch view (if isStored = true)

  • A runtime aggregator view (if isStored = false)

  • A BFF endpoint

UI sections map to these patterns:

UI SectionPattern
View BasicsViewBasics
AggregatesViewAggregate[]
StatsViewStat with AggregateItem[]

Examples of what users can build:

  • "User Dashboard View" (user + orgs + stats)

  • "Product Details View" (product + images + reviews + stats)

  • "Analytics View"

This page is the GUI equivalent of building a stored materialized read model.


6. Notification Service

Maps to:

  • NotificationService pattern

  • notificationSettings

  • eventNotifications[]


6.1 Notification Service → Service Settings

Configures:

  • Provider selection (SMTP, AWS SNS, Twilio, OneSignal, etc.)

  • Stored notifications

  • Email/SMS/push settings


6.2 Notification Service → Event Notifications

Maps to: EventNotification pattern.

User configures:

  • Kafka channel → event name

  • Notification type

  • Template (subject/body via EJS)

  • Target extraction

  • Condition to trigger

  • In-app notification storage

The GUI directly aligns with:

  • EventNotificationBasics

  • EventDataSettings

  • NotificationTarget[]

  • NotificationTemplate


7. Services Module

This is one of the most important GUI areas, representing your microservices.

Maps to:

  • services[] pattern

  • Each Service maps to a Service pattern object


7.1 Services → Main Page

You can:

  • Create new service

  • Delete service

  • Navigate to each service’s main page


8. Inside a Service

A service contains:

  • Service Settings

  • Data Objects

  • Business Logic

  • Library (functions, templates, assets, hooks)

  • Edge Controllers

Each section maps cleanly to pattern elements.


9. Service → Service Settings

Maps to: serviceSettings

UI exposes subpatterns:

  • Service BasicsserviceBasics{name, description, customVariables}

  • Node PackagesnpmPackages[]

  • Service OptionsserviceOptions

    • serviceRequiresLogin

    • httpPort

    • serviceAllowsUserToLogin

  • Data Model → metadata for DB

  • Soft Delete → maps to service-level useSoftDelete

This page defines how the microservice functions as a whole.


10. Service → Data Objects

Maps to: dataObjects[] pattern

Data Objects Main Page

Lets you create/remove DataObjects.


10.1 Inside a Data Object

Navigation:

  • Object Settings → data object–level patterns

  • Properties → property-level patterns


10.2 Data Object → Object Settings

Maps to:

  • ObjectSettings

  • AuthorizationSettings

  • RedisEntityCacheSettings

  • CompositeIndex[]

  • StripeOrderConfig

  • MembershipSettings

This UI is crucial for controlling:

  • Soft delete

  • Access visibility (private/protected/public)

  • Multi-tenant scoping

  • Caching behavior

  • Composite indexes

  • Membership-based access

  • Stripe order flow

The UI accordion structure matches the pattern structure exactly.


10.3 Data Object → Properties

Maps to: DataProperty pattern with all nested subpatterns:

  • BasicSettings

  • IndexSettings

  • EnumSettings

  • RelationSettings

  • SessionSettings

  • ContextSettings

  • FormulaSettings

  • FilterSettings

  • PropertyStaticJoin

This is one of the most powerful UI editors in Mindbricks.

How-to actions:

  • Create simple fields

  • Create relationships

  • Add calculated fields

  • Expose fields for filtering

  • Add static joins (denormalization)

  • Add enum options

  • Add unique constraints

  • Add DB or Elastic indexes

The UI precisely matches the pattern structure.


11. Business Logic

Maps to:

  • businessLogic[] (Business APIs)

  • BusinessApiActionStore

  • Every Action pattern (FetchObjectAction, ListMapAction, CreateCrudAction, etc.)

The GUI shows:

  • Workflow diagram (milestones + actions)

  • Drag & drop action insertion

  • Config modals for each action

  • Context for each Business API

This is where you design service behavior.

Key capabilities:

  • Define get, list, create, update, delete APIs

  • Add conditions, validations, fetches

  • Built-in fetch, join, permission, membership logic

  • No need to write controllers manually

  • Business API becomes a code-generated Express route

How-to:

  • Click “Insert Action”

  • Choose from action library

  • Configure using modal

  • Use MScript for conditions or formulas

  • Use milestone settings for response shaping


12. Service → Library

Maps to:

  • service.library.functions[]

  • hooks[]

  • edgeFunctions[]

  • templates[]

  • assets[]

  • public[]

Where you:

  • Write custom JS functions (used in MScript)

  • Create templates for rendering

  • Add edge functions (for Edge Controllers)

  • Add static assets

Agent Ada can help generate these files.


13. Service → Edge Controllers

Maps to:

  • edgeControllers[]

  • Each controller uses an edgeFunction

This UI lets you:

  • Add fully custom REST endpoints

  • Point them to service library functions

  • Control HTTP paths & methods

  • Require login or not

Edge Controllers give you the escape hatch for advanced logic.


14. Summary

This GUI guide helps you navigate Mindbricks as both:

  • A low-code architectural studio

  • A pattern-based microservice generator

Nearly every UI form aligns directly with a pattern definition, and every page modifies a specific part of the MindbricksApplication tree.

You now know:

  • Where each configuration lives

  • What it configures

  • How it maps to the pattern ontology

  • How to use it effectively

  • How to think about each UI section as an architect


Awesome, let’s add an Appendix: GUI ↔ Pattern Mapping Table to your guide.

You can paste this at the end of the GUI Guide as-is.


Appendix A — Mindbricks GUI ↔ Pattern Mapping

This appendix maps GUI sections to the underlying pattern nodes in patterns.json. Use it when you want to understand exactly what a given page edits in the ontology.


A.1 Workspace Level

Workspace-level pages (Projects, Members, Workspace Settings, Billing, Cloud Servers, etc.) do not directly modify patterns.json. They manage the Mindbricks platform state (organizations, accounts, integrations), not the project ontology.

GUI AreaPattern NodeNotes
Workspace → Projects(none)Creates/opens projects; project’s patterns.json lives inside the project.
Workspace → Members (Org)(none)Workspace membership & roles, outside patterns.json.
Workspace → Settings (GitLab/GitHub)(none)Org-level integrations, not part of project patterns.
Workspace → Subscription / Billing(none)Platform billing metadata only.

A.2 Project Home

GUI AreaPattern NodeNotes
Project HomeMindbricksProjectConceptual hub; shows high-level summary of projectSettings, authentication, bffService, notificationService, services[].

A.3 Project Settings

GUI Page / SectionPattern NodeNotes
Project → Project Settings (page)MindbricksProject.projectSettingsRoot project configuration object.
Basic SettingsProjectSettings.basicSettings (BasicProjectSettings)Name, fullname, description, avatar, hasAuthentication, ignoreDeploymentSpecificFiles, customVariables.
Stripe SettingsProjectSettings.stripeSettings (StripeSettings)useStripe, StripeSettingsConfig.
AI SettingsProjectSettings.aiSettings (AiSettings)openAiApiKey, anthropicApiKey.
CORS SettingsProjectSettings.corsSettings (CorsSettings)useCorsControl, CorsSettingsConfig.
Pipeline TemplatesProjectSettings.pipelineTemplates[] (PipelineTemplate)EJS templates for CI/CD files.
IntegrationsProjectSettings.integrations[] (IntegrationConfiguration)S3, Telegram, Google Maps, etc.

A.4 Authentication Module

Authentication root pattern:

MindbricksProject.authentication: ProjectAuthentication

A.4.1 Authentication → Main

GUI AreaPattern NodeNotes
Authentication → Main PageProjectAuthenticationDocument and code view; no direct edits here.

A.4.2 Authentication → Authentication Essentials

GUI SectionPattern NodeNotes
JWT AuthenticationProjectAuthentication.authenticationEssentials.JWTAuthentication (JWTAuth) and JWTAuthConfigEnable JWT + token/key lifetimes.
SSO AuthenticationProjectAuthentication.authenticationEssentials.ssoAuthentication (SSOAuth) + SSOAuthConfig + SSOServerSettingsSSO provider & mapping.
Remote Service AuthenticationProjectAuthentication.authenticationEssentials.remoteServiceAuthentication (RemoteServiceAuthentication) + RemoteServiceAuthenticationConfigAuth delegated to remote user service.
Remote Session SettingsProjectAuthentication.authenticationEssentials.remoteSessionSettings (RemoteSession, RemoteSessionConfig)Session retrieval from remote service.
API Key AuthenticationProjectAuthentication.authenticationEssentials.apiKeyAuthentication (APIKeyAuth, APIKeyAuthConfig)API key + secret placement.
HTTP SettingsProjectAuthentication.authenticationEssentials.httpSettings (AuthHttpSettings)Auth service port & router suffix.
Cookie SettingsProjectAuthentication.authenticationEssentials.cookieSettings (CookieSettings)Allowed domains for auth cookies.

A.4.3 Authentication → Login Definition

GUI SectionPattern NodeNotes
User SettingsProjectAuthentication.loginDefinition.userSettings (LoginDefUserSettings)Super admin, name type, verification/2FA, groups, scripts.
Tenant SettingsProjectAuthentication.loginDefinition.tenantSettings (LoginDefTenantSettings, LoginDefTenantSettingsConfig)Enable multi-tenancy, tenant name, public creation, avatars.

A.4.4 Authentication → Verification Services

GUI SectionPattern NodeNotes
Verification SettingsProjectAuthentication.verificationServices.verificationSettings (VerificationSettings)verificationMode (test/live).
Password Reset By EmailverificationServices.passwordResetByEmail (PasswordResetByEmail, VerificationConfig)Email-based reset.
Password Reset By MobileverificationServices.passwordResetByMobile (PasswordResetByMobile)SMS reset.
Email 2 FactorverificationServices.email2Factor (Email2Factor)Email 2FA.
Mobile 2 FactorverificationServices.mobile2Factor (Mobile2Factor)SMS 2FA.
Email VerificationverificationServices.emailVerification (EmailVerification)Email verification.
Mobile VerificationverificationServices.mobileVerification (MobileVerification)SMS verification.

A.4.5 Authentication → Access Control

GUI SectionPattern NodeNotes
Permission BasicsProjectAuthentication.accessControl.permissionBasics (PermissionBasics, PermissionBasicsConfig, PermissionGroup[])PBAC + permission groups.
Role SettingsProjectAuthentication.accessControl.roleSettings (RBACSettings, RBACSettingsConfig, RoleItem[], customRoleLookups)RBAC roles, multi-role, derived roles.
Permission TypesProjectAuthentication.accessControl.permissionTypes (PermissionTypes)Toggles role/user/group/object/tenant-based permissions.
Object Based SettingsProjectAuthentication.accessControl.objectBasedSettings (OBACPermission)OBAC: which DataObjects support per-object permissions.
Attribute Based SettingsProjectAuthentication.accessControl.attributeBasedSettings (AbacPermission, ABACDefinititon[])ABAC rules using MScript whereClause.

A.4.6 Authentication → Social Logins

GUI SectionPattern NodeNotes
GoogleProjectAuthentication.socialLogins.google (GoogleLoginSetting, GoogleLoginConfig)Google OAuth2.
AppleProjectAuthentication.socialLogins.apple (AppleLoginSetting, AppleLoginConfig)Apple OAuth2.
GitLabProjectAuthentication.socialLogins.gitlab (GitlabLoginSetting, GitlabLoginConfig)GitLab OAuth2.
GitHubProjectAuthentication.socialLogins.github (GithubLoginSetting, GithubLoginConfig)GitHub OAuth2.

A.4.7 Authentication → User Properties / Tenant Properties

GUI PagePattern Node
Authentication → User PropertiesProjectAuthentication.userProperties[] (DataProperty)
Authentication → Tenant PropertiesProjectAuthentication.tenantProperties[] (DataProperty)

These use the full DataProperty pattern and all its sub-settings.


A.5 BFF Service

GUI PagePattern NodeNotes
BFF Service → MainMindbricksProject.bffService (BFFService)Display only.
BFF Service → Data ViewsBFFService.dataViews[] (DataView)Full DataView designer.

DataView sections:

UI SectionPattern Node
View BasicsDataView.viewBasics (ViewBasics)
AggregatesDataView.aggregates[] (ViewAggregate)
StatsDataView.stats[] (ViewStat, AggregateItem[])

A.6 Notification Service

GUI PagePattern Node
NotificationService → MainMindbricksProject.notificationService (NotificationService)
NotificationService → Service SettingsNotificationService.serviceSettings (NotificationServiceSettings, NotificationServiceOptions + provider settings like SmtpSettings, TwilioSettings, etc.)
NotificationService → Event NotificationsNotificationService.eventNotifications[] (EventNotification)

EventNotification accordions:

UI SectionPattern Node
Event Notification BasicsEventNotification.eventNotificationBasics (EventNotificationBasics)
Event Data SettingsEventNotification.eventDataSettings (EventDataSettings)
TargetsEventNotification.targets[] (NotificationTarget)
TemplateEventNotification.template (NotificationTemplate)

A.7 Services & Service-Level Pages

At top-level:

MindbricksProject.services[] : Service

A.7.1 Services → Main Page

GUI PagePattern Node
Services → MainMindbricksProject.services[] overview (create/delete Service entries).

A.7.2 Service → Main / Service Settings

GUI Page / SectionPattern Node
Service Main PageService (display only)
Service → Service Settings → Service BasicsService.serviceSettings.serviceBasics (ServiceBasics)
Service → Service Settings → Service OptionsService.serviceSettings.serviceOptions (ServiceOptions)

ServiceBasics includes name/description/customVariables/nodejsPackages. ServiceOptions includes serviceRequiresLogin, httpPort, dbType, useSoftDelete, etc.


A.8 Service → Data Objects

Service.dataObjects[] : DataObject

A.8.1 Data Objects → Main Page

GUI PagePattern Node
Data Objects → MainService.dataObjects[] overview.

A.8.2 Data Object → Main / Object Settings / Properties

GUI Page / SectionPattern Node
Data Object → MainDataObject (documentation only)
Data Object → Object Settings → Basic SettingsDataObject.objectSettings.basicSettings (ObjectBasicSettings)
Object Settings → AuthorizationDataObject.objectSettings.authorization (ObjectAuthorization)
Object Settings → Redis Entity Cache SettingsDataObject.objectSettings.redisEntityCacheSettings (RedisEntityCacheSettings, RedisEntityCacheConfig)
Object Settings → Composite Index SettingsDataObject.objectSettings.compositeIndexSettings[] (CompositeIndex)
Object Settings → Stripe OrderDataObject.objectSettings.stripeOrder (StripeOrder, StripeOrderConfig)
Object Settings → Membership SettingsDataObject.objectSettings.membershipSettings (MembershipSettings, MembershipSettingsConfig)

A.8.3 Data Object → Properties

GUI Page / SectionPattern Node
Properties Page (Property list)DataObject.properties[] (DataProperty)
Property → Basic SettingsDataProperty.basicSettings (PropertyBasicSettings)
Property → Index SettingsDataProperty.indexSettings (PropertyIndexSettings)
Property → Enum SettingsDataProperty.enumSettings (PropertyEnumSettings, PropertyEnumSettingsConfig)
Property → Relation SettingsDataProperty.relationSettings (PropertyRelation, PropertyRelationConfig)
Property → Session SettingsDataProperty.sessionSettings (PropertySessionSettings, PropertySessionSettingsConfig)
Property → Context SettingsDataProperty.contextSettings (PropertyContextSettings, PropertyContextSettingsConfig)
Property → Formula SettingsDataProperty.formulaSettings (PropertyFormulaSettings, PropertyFormulaSettingsConfig)
Property → Filter SettingsDataProperty.filterSettings (PropertyFilterSettings, PropertyFilterSettingsConfig)
Property → Static JoinDataProperty.staticJoin (PropertyStaticJoin, PropertyStaticJoinConfig)

A.9 Service → Business Logic (Business APIs)

Service.businessLogic[] : BusinessApi

A.9.1 Business Logic → Main Page

GUI PagePattern Node
Business Logic → MainService.businessLogic[] overview.

A.9.2 Business API Page

GUI SectionPattern Node
CRUD Type, Data Object Name, DescriptionBusinessApi.apiOptions (ApiOptions)
Auth OptionsBusinessApi.authOptions (ApiAuthOptions)
REST SettingsBusinessApi.restSettings (ApiRestSettings, ApiRestSettingsConfig)
gRPC SettingsBusinessApi.grpcSettings (ApiGrpcSettings, ApiGrpcSettingsConfig)
Kafka SettingsBusinessApi.kafkaSettings (ApiKafkaSettings, ApiKafkaSettingsConfig)
Socket SettingsBusinessApi.socketSettings (ApiSocketSettings, ApiSocketSettingsConfig)
Cron SettingsBusinessApi.cronSettings (ApiCronSettings, ApiCronSettingsConfig)
Select ClauseBusinessApi.selectClause (SelectClauseSettings, SelectJoin[])
Where ClauseBusinessApi.whereClause (WhereClauseSettings, ExtendedClause[])
Data ClauseBusinessApi.dataClause (DataClauseSettings, DataMapItem[])
Delete OptionsBusinessApi.deleteOptions (DeleteOptions)
Get OptionsBusinessApi.getOptions (GetOptions)
List OptionsBusinessApi.listOptions (ListOptions with ListPermissionFilter, ListMembershipFilter, ListSearchFilter, ListJointFilterSettings, etc.)
Pagination OptionsBusinessApi.paginationOptions (PaginationOptions)
ActionsBusinessApi.actions (BusinessApiActionStore & all actions like FetchObjectAction, CreateCrudAction, etc.)
Workflow (milestones & actions)BusinessApi.workflow (BusinessWorkflow and CreateBusinessWorkflow, UpdateBusinessWorkflow, etc.)

A.10 Service → Library

GUI SectionPattern Node
FunctionsService.library.functions[] (LibModule)
Edge FunctionsService.library.edgeFunctions[] (LibModule)
TemplatesService.library.templates[] (LibModule)
AssetsService.library.assets[] (LibModule)
PublicService.library.public[] (LibModule)

LibModule maps to a file with moduleName, moduleExtension, and moduleBody.


A.11 Service → Edge Controllers

GUI SectionPattern Node
Edge Controllers listService.edgeControllers[] (EdgeController)
Edge Controller OptionsEdgeController.edgeControllerOptions (EdgeControllerOptions)
Edge REST SettingsEdgeController.edgeRestSettings (EdgeRestSettings)

Edge controllers reference library.edgeFunctions[moduleName].


A.12 Profile / Account Pages

Profile-related GUI pages operate at the Mindbricks account level, not at project pattern level. They do not map to project patterns.json.

GUI PagePattern Node
Profile → Personal Information(none)
Profile → Security(none)
Profile → Organizations(none)
Profile → Linked Accounts(none)

They manage user profile, security, organizations, and OAuth links at platform level.


Was this page helpful?
Built with Documentation.AI

Last updated today