Mindbricks Pattern OnotologyProject Settings
Mindbricks Pattern Onotology

Project settings ontology

Reference for the ProjectSettings ontology in Mindbricks, covering basic project metadata, Stripe, AI, CORS, pipeline templates, and integration configuration.

MPO Version: 1.3.0

Defines the core configuration of your Mindbricks project, including metadata, environment preferences, and infrastructure integrations. Use this section to set up the project name, description, and optionally override managed infrastructure services with your own. While Mindbricks provides managed services by default to ensure a reliable, production-ready architecture, you may choose to integrate custom services for Redis, PostgreSQL, Kafka, and others as needed.

interface ProjectSettings = {
  basicSettings : BasicProjectSettings;
  stripeSettings : StripeSettings;
  aiSettings : AiSettings;
  corsSettings : CorsSettings;
  pipelineTemplates : PipelineTemplate[];
  integrations : IntegrationConfiguration[];
}
FieldDescription
basicSettingsDefines the essential metadata for the project, including its name, full title, description, icon, and environment variables.
stripeSettingsSettings for integrating Stripe as a payment gateway. Mindbricks does not provide a managed Stripe account—project owners must configure their own Stripe credentials here.
aiSettingsSettings for connecting to external AI services such as OpenAI. Use this section to input API keys and model preferences for AI-based features in your application.
corsSettingsDefines CORS settings for service accesses. When enabled Cross Origins will be accepted according to the settings.
pipelineTemplatesA list of ejs templates that renders custom CI-CD files for your services. Each file will be created in the root of your microservices after rendered using the templates with service configuration. Use these templates if you will take out your project to ypur own deployment environment and you want Mindbricks to generate your deploy pipeline files.
integrationsAn array of 3rd party integration configurations which will be used through out the services. When an integration is activated in the project with its cclient configurations, it will be visible in the business api design to add integration actions which call an integration client's method with in the business logic

BasicProjectSettings

MPO Version: 1.3.0

Defines the basic settings of your Mindbricks project, including its identity, descriptive metadata, environment variables, and current lifecycle stage. These values are essential for naming, documentation, and runtime configuration.

interface BasicProjectSettings = {
  name : String;
  fullname : String;
  description : Text;
  avatar : String;
  frontendDocument : Text;
  hasAuthentication : Boolean;
  ignoreDeploymentSpecificFiles : Boolean;
  customVariables : DataMapSimpleItem[];
}
FieldDescription
nameThe short name of the project. This is a required field and is often a single word. It is used as a prefix for naming project assets and resources.
fullnameThe full, descriptive name of the project. This will appear in dashboards, documentation, and UIs.
descriptionA long-form description of the project. This text is used in documentation materials and for internal references.
avatarA URL to the project's avatar icon. This image is shown in UI panels and documentation headers.
frontendDocumentA text based information to inform the frontend developer or frontend AI agent about the general UX behaviour of the application based on user stories and use cases. The format may be either text or markdown(recommended). Write the document as an AI prompt and describe application gneric UX behaviours. Any service or data object specific information should be given as a brief key sentence, since they will be detailed in their own objects. Note that this document will be given to the AI agent or human developer combined with all technical details that is generated from the project design,so this document should only focus on application-global behavioral UX business logic.
hasAuthenticationDetermines if the project uses an authentication system (for users, administrators, etc.). Enabling this typically activates an auth microservice and related security features. Detailed settings are in the main authentication module.
ignoreDeploymentSpecificFilesUse this in your custom deployment not to generate auto-deployemnt specific files so you can integrate your own files to your repository. AI Agents should keep this false.
customVariablesKey-value pairs defining custom environment variables for the project. These variables are available in runtime and can be accessed in service logic and functions.

DataMapSimpleItem

MPO Version: 1.3.0

Represents a single key-value pair used in most context. The value is constant.

interface DataMapSimpleItem = {
  name : String;
  value : String;
}
FieldDescription
nameThe key name for the data item (e.g., a header name or parameter name).
valueThe value of the data item, should be deifned as string even it is a number.

StripeSettings

MPO Version: 1.3.0

Defines integration settings for Stripe payments. Mindbricks does not provide a managed Stripe account—keys for both test and live modes must be supplied manually.

interface StripeSettings = {
  useStripe : Boolean;
  configuration : StripeSettingsConfig;
}
FieldDescription
useStripeSpecifies whether Stripe payments are enabled.
configurationThe configuration object for the Stripe service. Leave it null if useStripe is false.

StripeSettingsConfig

MPO Version: 1.3.0

Defines the configuration for Stripe. This object is used when useStripe is set to true. It includes API keys for both test and live modes.

interface StripeSettingsConfig = {
  testPublicKey : String;
  testSecretKey : String;
  livePublicKey : String;
  liveSecretKey : String;
}
FieldDescription
testPublicKeyThe public key for Stripe test mode, used in development and staging.
testSecretKeyThe secret key for Stripe test mode, used in development and staging.
livePublicKeyThe public key for Stripe live mode, used in production.
liveSecretKeyThe secret key for Stripe live mode, used in production.

AiSettings

MPO Version: 1.3.0

Defines API keys for AI service providers such as OpenAI and Anthropic. These keys are used in any AI-powered logic within the application.

interface AiSettings = {
  openAiApiKey : String;
  anthropicApiKey : String;
}
FieldDescription
openAiApiKeyThe API key for accessing OpenAI services.
anthropicApiKeyThe API key for accessing Anthropic services.

CorsSettings

MPO Version: 1.3.0

Defines CORS settings for service accesses. When enabled Cross Origins will be accepted according to the settings.

interface CorsSettings = {
  useCorsControl : Boolean;
  configuration : CorsSettingsConfig;
}
FieldDescription
useCorsControlSpecifies whether CORS control is enabled. Leave false if you allow service accesses from any domain.
configurationThe configuration object for the CORS settings. Leave it null if useCorsControl is false.

CorsSettingsConfig

MPO Version: 1.3.0

Defines the configuration for CORS settings. This object is used when useCorsControl is set to true. Note that if your service is in a different subdomain, Mindbricks automatically uses wildcard url control and allows other subdomains in the same main domain. Localhost Vite ports are also allowed automatically.

interface CorsSettingsConfig = {
  allowedOrigins : String[];
  allowAllSubdomains : Boolean;
}
FieldDescription
allowedOriginsA list of full url addresses that are allowed as cross origin.(with https or http)
allowAllSubdomainsWhen set to true, the services will accept all cross origins that have different subdomain but same domain. It is not recommended if your services share a domain with foreign subdomains.

PipelineTemplate

MPO Version: 1.3.0

The asset to store a template for generating custom pipeline files. Used in project level and applied to all microservices.

interface PipelineTemplate = {
  filename : String;
  template : Text;
}
FieldDescription
filenameThe name of the pipeline file that will be generated like .gitlab-ci.yml
templateThe ejs source code of the template that renders the pipeline file.

IntegrationConfiguration

MPO Version: 1.3.0

A configuration class to define client parameters to use a remote API like AWS S3, Twillio or any other 3rd part api provider.

interface IntegrationConfiguration = {
  provider : IntegrationProvider;
  configuration : DataMapItem[];
}
FieldDescription
providerA specific name for the api client that want to be connected and used in the business logic. The name must match the names of the supported provider list of Mindbricks.
configurationThe client parameters to create a client to the pre-registered provider. Mostly credentials like CLientId, ClientSecret, ApiKey or initila options like region select in AWS. The confuration parameter list must match with the definition of the provider configuration in the integrations document.

IntegrationProvider

An Enum value to store the names of the integration providers

const IntegrationProvider = {
  amazonS3: "amazonS3",
  amazonSES: "amazonSES",
  googleGemini: "googleGemini",
  googleMaps: "googleMaps",
  googleAnalytics: "googleAnalytics",
  Telegram: "Telegram",
  jiraServiceManagement: "jiraServiceManagement",
  Amplitude: "Amplitude",
  Mailgun: "Mailgun",
  Pusher: "Pusher",
  Slack: "Slack",
  Stripe: "Stripe",
  intercom: "intercom",
};
EnumDescription
amazonS3A popular object storage service by AWS
amazonSESAWS Simple Email Service
googleGeminiAn AI model API provided by Google
googleMapsA geolocation and mapping API provided by Google
googleAnalyticsGoogle’s analytics tracking and reporting API
TelegramMessaging API based on the Telegram platform
jiraServiceManagementA service desk and ITSM API by Atlassian
AmplitudeA product and behavior analytics API
MailgunA transactional email delivery API
PusherA real-time communication API for websockets and channels
SlackThe Slack API for workspace messaging and automation
StripeA payment processing and billing API
intercomA customer messaging, support, and engagement platform API

DataMapItem

MPO Version: 1.3.0

Represents a single key-value pair used in most context. The value can be defined dynamically using an MScript.

interface DataMapItem = {
  name : String;
  value : MScript;
}
FieldDescription
nameThe key name for the data item (e.g., a header name or parameter name).
valueThe value of the data item, defined using MScript to allow dynamic expressions or literals.

MScript

MPO Version: 1.3.0

Represents a Mindbricks JavaScript expression used for logic, validation, or configuration. An MScript is stored as a string in the JSON schema but is expected to conform to a valid JavaScript ExpressionStatement. Acceptable forms include literals, identifiers, expressions, function calls, or a module.exports assignment returning a valid object. Although stored as plain text, MScripts are parsed and analyzed using a specialized override class that allows static checks and evaluation.

interface MScript = {
}
FieldDescription
Was this page helpful?
Built with Documentation.AI

Last updated today