Servidor MCP

mcp

io.bootify/mcp
Herramientas para desarrolladores Público y accesible MCP 2025-11-25

Qué hace este MCP

Creates and configures Spring Boot projects, including entities, relations, dependencies, security settings, REST APIs, database schemas, and generated project exports.

addAppModule
Add a project application module
Available with Bootify Professional. Add a custom application module. References name the modules this module depends on. The same graph defines package boundaries for MODULITH and physical build modules for MULTI_MODULE; select either with updateAdvancedOptions first. The implicit base module is the lowest-level shared module and is integrated directly or transitively by every other module. A custom module with no references depends on base. The implicit web module is the highest-level application wrapper and automatically depends on every custom root module; in MULTI_MODULE it assembles the executable application. Neither implicit module can be edited. Dependencies must be acyclic and should point from a feature toward the lower-level modules it uses. Background information: https://bootify.io/docs/modules-tab.html
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Name of the new custom module'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'references': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Referenced custom module name'}, 'maxItems': 255, 'description': 'Unique names of existing custom modules used as direct dependencies. Omit or use an empty array to depend on the implicit base module.', 'uniqueItems': True}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addDataObject
Add a project data object
Add a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the new data object'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'minItems': 1, 'description': 'Complete ordered data object field list.'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module; null selects base. Available with Bootify Professional. '}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addDependency
Add a project dependency
Add an extra application dependency to the generated Maven or Gradle build. Bootify already adds dependencies required by selected project features. Call listAvailableDependencies to find supported coordinates, then pass the returned groupId:artifactId. Spring Boot supplies the compatible dependency version.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'dependency'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'dependency': {'type': 'string', 'pattern': '^[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+(?::[^\\s:]+)?$', 'maxLength': 500, 'description': 'Maven coordinates: groupId:artifactId[:version]'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addEntity
Add a project entity
Add an entity to an existing Bootify project. Entity, field, module, inheritance and custom field-type references use names.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the new entity'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'primaryKey': {'type': 'boolean'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'description': 'Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.'}, 'inherits': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the superclass entity; null removes inheritance'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'App module name; null selects the base module. Available with Bootify Professional. '}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'superclass': {'type': 'boolean'}, 'restEnabled': {'type': 'boolean'}, 'frontendEnabled': {'type': 'boolean'}, 'paginationEnabled': {'type': 'boolean'}, 'searchFilterEnabled': {'type': 'boolean'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addEnum
Add a project enum
Add an enum to an existing Bootify project, identified by name.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'values'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Name of the new enum'}, 'values': {'type': 'array', 'items': {'type': 'string', 'pattern': '[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*', 'maxLength': 100}, 'maxItems': 255, 'minItems': 1, 'description': 'Ordered, unique enum values such as DRAFT and PUBLISHED', 'uniqueItems': True}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addFrontendController
Add a frontend controller
Available with Bootify Professional. Add a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the new frontend controller'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*', 'maxLength': 255, 'description': 'Controller base path, with optional {name} placeholders'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name; null selects the web module'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'path', 'parameters'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Frontend method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Existing data object name, including entity-generated DTOs, accessible from the controller module. No built-ins, enums or collections. Omit when the method has no input'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addIndex
Add a database index
Add a normal or unique index over ordered entity fields or owning-side relations. Many-to-many relations are excluded. The response returns its name selector as Entity.field1-field2.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'entity', 'unique', 'fields'], 'properties': {'entity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity containing the indexed fields or owning-side relations'}, 'fields': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity field or owning-side relation name'}, 'maxItems': 32, 'minItems': 1, 'description': 'Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.', 'uniqueItems': True}, 'unique': {'type': 'boolean', 'description': 'Whether the index enforces a unique field combination'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'name': {'type': 'string', 'description': 'Current canonical selector; copy into subsequent update or delete calls'}, 'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addRelation
Add an entity relation
Add a relation whose type describes the cardinality from fromEntity to toEntity. For MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY the owning field is fromEntity.fromField; for ONE_TO_MANY it is toEntity.toField. The response includes that canonical owning-side value as identifier. Bidirectional relations require both fields. Background information: https://bootify.io/docs/jpa-relationship-types-with-examples.html. fromEntity and toEntity must already exist. The owning entity's application module must depend on the target entity's module.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'type', 'fromEntity', 'toEntity'], 'properties': {'type': {'enum': ['MANY_TO_ONE', 'ONE_TO_MANY', 'ONE_TO_ONE', 'MANY_TO_MANY'], 'type': 'string', 'description': 'Cardinality from fromEntity to toEntity'}, 'toField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations'}, 'required': {'type': 'boolean', 'description': 'Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations'}, 'toEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the to side of the cardinality'}, 'fromField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'tableName': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Join-table name; required only for MANY_TO_MANY'}, 'fromEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the from side of the cardinality'}, 'unidirectional': {'type': 'boolean', 'description': 'Omit the reverse field. Relations across application modules must be unidirectional'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'identifier': {'type': 'string', 'description': 'Current canonical selector; copy into subsequent update or delete calls'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addRestController
Add a REST controller
Available with Bootify Professional. Add a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the new REST controller'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*', 'maxLength': 255, 'description': 'Controller base path, with optional {name} placeholders'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name; null selects the web module'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'method', 'path', 'parameters', 'responseType', 'responseStatus'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Endpoint method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}, 'responseType': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.'}, 'responseStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
addSecurityConfig
Add a security configuration
Create a config with safe defaults. Configure roles, login and an optional user source through their dedicated tools.
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'type': {'enum': ['BASIC_AUTH', 'JWT', 'FORM_SESSION', 'KEYCLOAK_RESOURCE_SERVER', 'KEYCLOAK_CLIENT'], 'type': 'string'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module; null selects base'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
configureSecurityLogin
Configure security login
Configure only login, JWT, Keycloak and session behavior. Provide just the fields that should change.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'rememberMe': {'enum': [None, 'NONE', 'CHECKBOX', 'ALWAYS'], 'type': ['string', 'null']}, 'jwtAlgorithm': {'enum': [None, 'HMAC', 'RSA'], 'type': ['string', 'null']}, 'loginMethods': {'type': 'array', 'items': {'enum': ['DIRECT', 'GOOGLE', 'GITHUB', 'FACEBOOK'], 'type': 'string'}, 'uniqueItems': True}, 'loginClientIds': {'type': 'object', 'additionalProperties': {'type': 'string', 'maxLength': 255, 'minLength': 1}}, 'keycloakRealmId': {'type': ['string', 'null'], 'maxLength': 255}, 'keycloakClientId': {'type': ['string', 'null'], 'maxLength': 255}, 'registrationEndpoint': {'type': 'boolean'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
configureSecurityUserSource
Configure security user source
Configure the user entity and its credential, OAuth mapping, password reset and token fields. Provide just the fields that should change.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'hashField': {'type': ['string', 'null'], 'maxLength': 510}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'sourceEntity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'User source entity; null uses in-memory users'}, 'mapEmailField': {'type': ['string', 'null'], 'maxLength': 510}, 'resetUidField': {'type': ['string', 'null'], 'maxLength': 510}, 'usernameField': {'type': ['string', 'null'], 'maxLength': 510}, 'loginTypeField': {'type': ['string', 'null'], 'maxLength': 510}, 'externalIdField': {'type': ['string', 'null'], 'maxLength': 510}, 'resetStartField': {'type': ['string', 'null'], 'maxLength': 510}, 'mapLastNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'refreshTokenPath': {'type': ['string', 'null'], 'maxLength': 510}, 'mapFirstNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'refreshTokenExpiryPath': {'type': ['string', 'null'], 'maxLength': 510}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
copyProject
Copy a project owned by the bearer-authenticated user. Projects with an active one-time upgrade cannot be copied.
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['message', 'projectId', 'projectUrl', 'planLevel', 'planStatus', 'project'], 'properties': {'message': {'type': 'string'}, 'project': {'type': 'object', 'required': ['name', 'group', 'buildType', 'language', 'developerPreferences', 'frontend', 'database', 'dependencies', 'planLevel', 'planStatus'], 'properties': {'name': {'type': 'string'}, 'enums': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Enum name'}, 'values': {'type': 'array', 'items': {'type': 'string', 'pattern': '[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*', 'maxLength': 100}, 'maxItems': 255, 'minItems': 1, 'description': 'Ordered, unique enum values such as DRAFT and PUBLISHED', 'uniqueItems': True}}, 'additionalProperties': False}, 'description': 'Present when ENUMS is requested in details'}, 'group': {'type': 'string'}, 'indexes': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'entity', 'unique', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+', 'maxLength': 16384, 'description': 'Automatically derived Entity.field1-field2 identifier'}, 'entity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity containing the indexed fields or owning-side relations'}, 'fields': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity field or owning-side relation name'}, 'maxItems': 32, 'minItems': 1, 'description': 'Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.', 'uniqueItems': True}, 'unique': {'type': 'boolean', 'description': 'Whether the index enforces a unique field combination'}}, 'additionalProperties': False}, 'description': 'Present when INDEXES is requested in details'}, 'database': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'superclass', 'restEnabled', 'frontendEnabled', 'paginationEnabled', 'searchFilterEnabled', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity name'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'primaryKey': {'type': 'boolean'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'description': 'Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.'}, 'inherits': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the superclass entity; null removes inheritance'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'App module name; null selects the base module. Available with Bootify Professional. '}, 'superclass': {'type': 'boolean'}, 'restEnabled': {'type': 'boolean'}, 'frontendEnabled': {'type': 'boolean'}, 'paginationEnabled': {'type': 'boolean'}, 'searchFilterEnabled': {'type': 'boolean'}}, 'additionalProperties': False}, 'description': 'Present when ENTITIES is requested in details'}, 'frontend': {'type': 'object', 'required': ['framework'], 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'relations': {'type': 'array', 'items': {'type': 'object', 'required': ['identifier', 'type', 'fromEntity', 'toEntity', 'required', 'unidirectional'], 'properties': {'type': {'enum': ['MANY_TO_ONE', 'ONE_TO_MANY', 'ONE_TO_ONE', 'MANY_TO_MANY'], 'type': 'string', 'description': 'Cardinality from fromEntity to toEntity'}, 'toField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations'}, 'required': {'type': 'boolean', 'description': 'Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations'}, 'toEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the to side of the cardinality'}, 'fromField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field'}, 'tableName': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Join-table name; required only for MANY_TO_MANY'}, 'fromEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the from side of the cardinality'}, 'identifier': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 511, 'description': 'Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.'}, 'unidirectional': {'type': 'boolean', 'description': 'Omit the reverse field. Relations across application modules must be unidirectional'}}, 'additionalProperties': False}, 'description': 'Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.'}, 'appModules': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'references'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Application module name'}, 'references': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Referenced module name'}, 'description': 'Effective direct dependencies by module name'}}, 'additionalProperties': False}, 'description': 'Present when APP_MODULES is requested. Includes the implicit base and web modules.'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dataObjects': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Data object name'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated DTOs'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'minItems': 1, 'description': 'Complete ordered data object field list.'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'generated': {'type': 'boolean', 'description': 'True for an entity-generated read-only DTO'}}, 'additionalProperties': False}, 'description': 'Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.'}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'required': ['enabled', 'connection'], 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'required': ['modularization', 'multiModulePrefix', 'testSetup', 'actuatorEnabled', 'actuatorEndpoints', 'hateoasEnabled', 'mapStructEnabled', 'serviceInterfaceEnabled'], 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'restControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'method', 'path', 'parameters', 'responseType', 'responseStatus'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Endpoint method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}, 'responseType': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.'}, 'responseStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'securityConfigs': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'loginMethods', 'loginClientIds', 'authenticationMethod', 'roleSource', 'roles', 'registrationEndpoint'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'type': {'enum': ['BASIC_AUTH', 'JWT', 'FORM_SESSION', 'KEYCLOAK_RESOURCE_SERVER', 'KEYCLOAK_CLIENT'], 'type': 'string'}, 'roles': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'paths'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'paths': {'type': 'array', 'items': {'type': 'string', 'maxLength': 510, 'minLength': 1}, 'maxItems': 255, 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 255, 'minItems': 1}, 'roleEnum': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Enum supplying role names'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module name; null selects base'}, 'hashField': {'type': ['string', 'null'], 'maxLength': 510}, 'rememberMe': {'enum': [None, 'NONE', 'CHECKBOX', 'ALWAYS'], 'type': ['string', 'null']}, 'roleSource': {'enum': ['CONSTANTS', 'ENUM', 'ENTITY_FIELD'], 'type': 'string'}, 'jwtAlgorithm': {'enum': [None, 'HMAC', 'RSA'], 'type': ['string', 'null']}, 'loginMethods': {'type': 'array', 'items': {'enum': ['DIRECT', 'GOOGLE', 'GITHUB', 'FACEBOOK'], 'type': 'string'}, 'uniqueItems': True}, 'sourceEntity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'User source entity name'}, 'mapEmailField': {'type': ['string', 'null'], 'maxLength': 510}, 'resetUidField': {'type': ['string', 'null'], 'maxLength': 510}, 'usernameField': {'type': ['string', 'null'], 'maxLength': 510}, 'loginClientIds': {'type': 'object', 'additionalProperties': {'type': 'string', 'maxLength': 255, 'minLength': 1}}, 'loginTypeField': {'type': ['string', 'null'], 'maxLength': 510}, 'externalIdField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakRealmId': {'type': ['string', 'null'], 'maxLength': 255}, 'resetStartField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakClientId': {'type': ['string', 'null'], 'maxLength': 255}, 'mapLastNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'refreshTokenPath': {'type': ['string', 'null'], 'maxLength': 510}, 'mapFirstNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'roleFieldEnumPath': {'type': ['string', 'null'], 'maxLength': 510}, 'authenticationMethod': {'enum': ['ANNOTATION_BASED', 'CONFIG_BASED'], 'type': 'string'}, 'registrationEndpoint': {'type': 'boolean'}, 'refreshTokenExpiryPath': {'type': ['string', 'null'], 'maxLength': 510}}, 'additionalProperties': False}, 'description': 'Present when SECURITY_CONFIGS is requested in details'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}, 'frontendControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'path', 'parameters', 'inputType'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Frontend method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Data object name; null when the method has no input'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'required': ['applicationFormat', 'packageStructure', 'includeAgentInstructions', 'openApiEnabled', 'dockerComposeEnabled', 'javaVersion', 'deployment'], 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'availableSecurityPaths': {'type': 'object', 'required': ['rest', 'frontend'], 'properties': {'rest': {'type': 'array', 'items': {'type': 'string'}}, 'frontend': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Paths currently available for a new security config; use listSecurityPaths with a config name when editing it', 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'additionalProperties': False}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'projectId': {'type': 'string'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'projectUrl': {'type': 'string', 'format': 'uri', 'description': 'The project URL that should always be shown to the user immediately after creation so they can follow all subsequent MCP changes live in their browser'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteAppModule
Delete a project application module
Delete a custom application module by name. The implicit base and web modules cannot be deleted. Bootify applies its consistency rules to references and assigned project elements. Available with Bootify Professional.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Name of the custom module to delete'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteDataObject
Delete a project data object
Delete a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the data object'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteEntity
Delete a project entity
Delete an entity identified by name. Bootify applies its consistency rules to dependent project data.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the entity to delete'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteEnum
Delete a project enum
Delete an enum identified by name. Referencing fields are changed to String by Bootify's consistency rules.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Name of the enum to delete'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteFrontendController
Delete a frontend controller
Available with Bootify Professional. Delete a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the frontend controller'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteIndex
Delete a database index
Delete an index by its current name.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+', 'maxLength': 16384, 'description': 'Current Entity.field1-field2 identifier'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteProject
Close a project owned by the bearer-authenticated user.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'closed'], 'properties': {'closed': {'type': 'boolean', 'const': True, 'description': 'Whether the project has been closed'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
deleteRelation
Delete an entity relation
Delete a relation using the current identifier returned by addRelation, updateRelation or getProject with RELATIONS details. The identifier is the owning entity and owning field joined with a dot; copy it verbatim because ONE_TO_MANY ownership is on the to side.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'identifier'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'identifier': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 511, 'description': 'Current identifier copied verbatim from addRelation, updateRelation or getProject RELATIONS'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteRestController
Delete a REST controller
Available with Bootify Professional. Delete a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the REST controller'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
deleteSecurityConfig
Delete a security configuration
Delete a security configuration by name.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config to delete'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
exportProject
Export a Bootify project
Return a ZIP download URL for an existing Bootify project. This tool should be called after all project details and the schema have been configured with the user and the current setup has been presented. Ask for approval before exporting unless the user already explicitly requested the export in the current context. The client can download and extract it when the environment supports it. Export fails when the project plan has expired. Successful calls record MCP usage and activity for this project. Generated files can include private signing keys for RSA JWT configurations; treat them as sensitive.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['message', 'projectId', 'filename', 'contentType', 'downloadUrl'], 'properties': {'message': {'type': 'string'}, 'filename': {'type': 'string'}, 'projectId': {'type': 'string'}, 'contentType': {'type': 'string'}, 'downloadUrl': {'type': 'string', 'format': 'uri'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
getOpenApiPreview
Get the generated OpenAPI preview
Available with Bootify Professional. Generate and return the OpenAPI document for the current project configuration. Use it to inspect resolved paths, parameters, request and response schemas, status codes and security schemes before exporting the project. Successful calls record MCP usage and activity for this project.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'openApiVersion', 'pathCount', 'schemaCount', 'document'], 'properties': {'document': {'type': 'object', 'description': 'The generated OpenAPI document', 'additionalProperties': True}, 'pathCount': {'type': 'integer', 'minimum': 0}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'schemaCount': {'type': 'integer', 'minimum': 0}, 'openApiVersion': {'type': 'string'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
getProject
Get a Bootify project
Return the current basic configuration and plan information of an existing Bootify project. Entity, relation, index and other object lists are returned only when explicitly selected through details. Successful calls record MCP usage and activity for this project.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'details': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Without details, only basic configuration and plan information are returned. Select additional areas explicitly, for example ENTITIES, RELATIONS and INDEXES. APP_MODULES, REST_CONTROLLERS and FRONTEND_CONTROLLERS: Available with Bootify Professional. ', 'uniqueItems': True}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['name', 'group', 'buildType', 'language', 'developerPreferences', 'frontend', 'database', 'dependencies', 'planLevel', 'planStatus'], 'properties': {'name': {'type': 'string'}, 'enums': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Enum name'}, 'values': {'type': 'array', 'items': {'type': 'string', 'pattern': '[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*', 'maxLength': 100}, 'maxItems': 255, 'minItems': 1, 'description': 'Ordered, unique enum values such as DRAFT and PUBLISHED', 'uniqueItems': True}}, 'additionalProperties': False}, 'description': 'Present when ENUMS is requested in details'}, 'group': {'type': 'string'}, 'indexes': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'entity', 'unique', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+', 'maxLength': 16384, 'description': 'Automatically derived Entity.field1-field2 identifier'}, 'entity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity containing the indexed fields or owning-side relations'}, 'fields': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity field or owning-side relation name'}, 'maxItems': 32, 'minItems': 1, 'description': 'Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.', 'uniqueItems': True}, 'unique': {'type': 'boolean', 'description': 'Whether the index enforces a unique field combination'}}, 'additionalProperties': False}, 'description': 'Present when INDEXES is requested in details'}, 'database': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'superclass', 'restEnabled', 'frontendEnabled', 'paginationEnabled', 'searchFilterEnabled', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity name'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'primaryKey': {'type': 'boolean'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'description': 'Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.'}, 'inherits': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the superclass entity; null removes inheritance'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'App module name; null selects the base module. Available with Bootify Professional. '}, 'superclass': {'type': 'boolean'}, 'restEnabled': {'type': 'boolean'}, 'frontendEnabled': {'type': 'boolean'}, 'paginationEnabled': {'type': 'boolean'}, 'searchFilterEnabled': {'type': 'boolean'}}, 'additionalProperties': False}, 'description': 'Present when ENTITIES is requested in details'}, 'frontend': {'type': 'object', 'required': ['framework'], 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'relations': {'type': 'array', 'items': {'type': 'object', 'required': ['identifier', 'type', 'fromEntity', 'toEntity', 'required', 'unidirectional'], 'properties': {'type': {'enum': ['MANY_TO_ONE', 'ONE_TO_MANY', 'ONE_TO_ONE', 'MANY_TO_MANY'], 'type': 'string', 'description': 'Cardinality from fromEntity to toEntity'}, 'toField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations'}, 'required': {'type': 'boolean', 'description': 'Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations'}, 'toEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the to side of the cardinality'}, 'fromField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field'}, 'tableName': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Join-table name; required only for MANY_TO_MANY'}, 'fromEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the from side of the cardinality'}, 'identifier': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 511, 'description': 'Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.'}, 'unidirectional': {'type': 'boolean', 'description': 'Omit the reverse field. Relations across application modules must be unidirectional'}}, 'additionalProperties': False}, 'description': 'Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.'}, 'appModules': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'references'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Application module name'}, 'references': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Referenced module name'}, 'description': 'Effective direct dependencies by module name'}}, 'additionalProperties': False}, 'description': 'Present when APP_MODULES is requested. Includes the implicit base and web modules.'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dataObjects': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Data object name'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated DTOs'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'minItems': 1, 'description': 'Complete ordered data object field list.'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'generated': {'type': 'boolean', 'description': 'True for an entity-generated read-only DTO'}}, 'additionalProperties': False}, 'description': 'Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.'}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'required': ['enabled', 'connection'], 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'required': ['modularization', 'multiModulePrefix', 'testSetup', 'actuatorEnabled', 'actuatorEndpoints', 'hateoasEnabled', 'mapStructEnabled', 'serviceInterfaceEnabled'], 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'restControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'method', 'path', 'parameters', 'responseType', 'responseStatus'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Endpoint method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}, 'responseType': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.'}, 'responseStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'securityConfigs': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'loginMethods', 'loginClientIds', 'authenticationMethod', 'roleSource', 'roles', 'registrationEndpoint'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'type': {'enum': ['BASIC_AUTH', 'JWT', 'FORM_SESSION', 'KEYCLOAK_RESOURCE_SERVER', 'KEYCLOAK_CLIENT'], 'type': 'string'}, 'roles': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'paths'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'paths': {'type': 'array', 'items': {'type': 'string', 'maxLength': 510, 'minLength': 1}, 'maxItems': 255, 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 255, 'minItems': 1}, 'roleEnum': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Enum supplying role names'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module name; null selects base'}, 'hashField': {'type': ['string', 'null'], 'maxLength': 510}, 'rememberMe': {'enum': [None, 'NONE', 'CHECKBOX', 'ALWAYS'], 'type': ['string', 'null']}, 'roleSource': {'enum': ['CONSTANTS', 'ENUM', 'ENTITY_FIELD'], 'type': 'string'}, 'jwtAlgorithm': {'enum': [None, 'HMAC', 'RSA'], 'type': ['string', 'null']}, 'loginMethods': {'type': 'array', 'items': {'enum': ['DIRECT', 'GOOGLE', 'GITHUB', 'FACEBOOK'], 'type': 'string'}, 'uniqueItems': True}, 'sourceEntity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'User source entity name'}, 'mapEmailField': {'type': ['string', 'null'], 'maxLength': 510}, 'resetUidField': {'type': ['string', 'null'], 'maxLength': 510}, 'usernameField': {'type': ['string', 'null'], 'maxLength': 510}, 'loginClientIds': {'type': 'object', 'additionalProperties': {'type': 'string', 'maxLength': 255, 'minLength': 1}}, 'loginTypeField': {'type': ['string', 'null'], 'maxLength': 510}, 'externalIdField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakRealmId': {'type': ['string', 'null'], 'maxLength': 255}, 'resetStartField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakClientId': {'type': ['string', 'null'], 'maxLength': 255}, 'mapLastNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'refreshTokenPath': {'type': ['string', 'null'], 'maxLength': 510}, 'mapFirstNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'roleFieldEnumPath': {'type': ['string', 'null'], 'maxLength': 510}, 'authenticationMethod': {'enum': ['ANNOTATION_BASED', 'CONFIG_BASED'], 'type': 'string'}, 'registrationEndpoint': {'type': 'boolean'}, 'refreshTokenExpiryPath': {'type': ['string', 'null'], 'maxLength': 510}}, 'additionalProperties': False}, 'description': 'Present when SECURITY_CONFIGS is requested in details'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}, 'frontendControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'path', 'parameters', 'inputType'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Frontend method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Data object name; null when the method has no input'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'required': ['applicationFormat', 'packageStructure', 'includeAgentInstructions', 'openApiEnabled', 'dockerComposeEnabled', 'javaVersion', 'deployment'], 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'availableSecurityPaths': {'type': 'object', 'required': ['rest', 'frontend'], 'properties': {'rest': {'type': 'array', 'items': {'type': 'string'}}, 'frontend': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Paths currently available for a new security config; use listSecurityPaths with a config name when editing it', 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'additionalProperties': False}
getProjectFile
Read a generated project file
Return one generated project file. The path must exactly match a value returned by listProjectFiles. Text is returned as UTF-8 and binary content as Base64. Successful calls record MCP usage and activity for this project. Generated files can include private signing keys for RSA JWT configurations; treat them as sensitive.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'path'], 'properties': {'path': {'type': 'string', 'description': 'An exact generated path returned by listProjectFiles'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['message', 'projectId', 'path', 'contentType', 'encoding', 'size', 'content'], 'properties': {'path': {'type': 'string'}, 'size': {'type': 'integer', 'minimum': 0}, 'content': {'type': 'string'}, 'message': {'type': 'string'}, 'encoding': {'enum': ['UTF-8', 'BASE64'], 'type': 'string'}, 'projectId': {'type': 'string'}, 'contentType': {'type': 'string'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
importSqlSchema
Import an SQL schema
Parse SQL DDL and reconcile its tables, fields and relations with an existing Bootify project. Matching entities are updated and new entities are added.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'sql'], 'properties': {'sql': {'type': 'string', 'maxLength': 500000, 'description': 'SQL DDL containing CREATE TABLE statements'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas', 'entitiesAdded', 'entitiesUpdated'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'entitiesAdded': {'type': 'array', 'items': {'type': 'string'}}, 'entitiesUpdated': {'type': 'array', 'items': {'type': 'string'}}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
linkProject
Link a Bootify project
Link an existing Bootify project to the bearer-authenticated user. Accepts either the project URL or its 12-character project ID and updates the project's plan.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectUrl'], 'properties': {'projectUrl': {'type': 'string', 'maxLength': 255, 'minLength': 12, 'description': 'The project URL or 12-character project ID'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'projectUrl', 'planLevel', 'planStatus'], 'properties': {'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string'}, 'projectUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}
listAvailableDependencies
List available project dependencies
List dependencies that can be added to the generated Maven or Gradle build. These dependencies are managed by the project's Spring Boot version and therefore do not require a dependency version. Use the optional query to narrow the result. Successful calls record MCP usage and activity for this project.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'query': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Optional case-insensitive text contained in the coordinates'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['dependencies'], 'properties': {'dependencies': {'type': 'array', 'items': {'type': 'string'}}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
listProjectFiles
List generated project files
Return every file path that would be present in the ZIP export of an existing Bootify project, without generating or returning file contents. Listing fails when the project plan has expired. Successful calls record MCP usage and activity for this project.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['message', 'projectId', 'fileCount', 'files'], 'properties': {'files': {'type': 'array', 'items': {'type': 'string'}}, 'message': {'type': 'string'}, 'fileCount': {'type': 'integer'}, 'projectId': {'type': 'string'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
listSecurityPaths
List selectable security paths
Return the canonical METHOD /path values that may be assigned to security roles. Pass securityConfigName while editing so that its current paths remain available. Frontend paths can only be protected by BASIC_AUTH, FORM_SESSION or KEYCLOAK_CLIENT. Successful calls record MCP usage and activity for this project.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'securityConfigName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Existing config being edited'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['rest', 'frontend'], 'properties': {'rest': {'type': 'array', 'items': {'type': 'string'}}, 'frontend': {'type': 'array', 'items': {'type': 'string'}}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
removeDependency
Remove a project dependency
Remove a dependency from the generated Maven or Gradle build using groupId:artifactId. A version may be supplied but is not used for matching.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'dependency'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'dependency': {'type': 'string', 'pattern': '^[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+(?::[^\\s:]+)?$', 'maxLength': 500, 'description': 'Maven coordinates: groupId:artifactId[:version]'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
setSecurityRoles
Set security roles and paths
Replace the role setup. Call listSecurityPaths first and use its exact METHOD /path values.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name', 'roleSource', 'roles'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'roles': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'paths'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'paths': {'type': 'array', 'items': {'type': 'string', 'maxLength': 510, 'minLength': 1}, 'maxItems': 255, 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 255, 'minItems': 1}, 'roleEnum': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Enum supplying role names'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'roleSource': {'enum': ['CONSTANTS', 'ENUM', 'ENTITY_FIELD'], 'type': 'string'}, 'roleFieldEnumPath': {'type': ['string', 'null'], 'maxLength': 510}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
startProject
Start a Bootify project
Create a new Bootify project and return its project ID, URL, current setup and plan information. This changes server state and should only be called when the user wants a new project. Basic settings, developer preferences and database settings can be supplied during creation; omitted settings retain their defaults. All subsequent changes made through MCP are reflected live for the user at the returned project URL. Always show that URL to the user immediately after creating the project so they can follow the changes in their browser.
Esquema de entrada
{'type': 'object', 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'description': 'A project name such as my-project'}, 'group': {'type': 'string', 'pattern': '[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*', 'description': 'A group name such as com.my-group, used for build settings and package name'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}}, 'minProperties': 1, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'lombokEnabled': {'type': 'boolean', 'description': 'Ignored for Kotlin projects'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean', 'description': 'Generate OpenAPI documentation and Swagger UI'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string', 'description': 'Format of the generated Spring application configuration'}, 'dockerComposeEnabled': {'type': 'boolean', 'description': 'Generate Docker Compose support for local development'}, 'includeAgentInstructions': {'type': 'boolean', 'description': 'Generate AGENTS.md with coding agent instructions'}}, 'minProperties': 1, 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['message', 'projectId', 'projectUrl', 'planLevel', 'planStatus', 'project'], 'properties': {'message': {'type': 'string'}, 'project': {'type': 'object', 'required': ['name', 'group', 'buildType', 'language', 'developerPreferences', 'frontend', 'database', 'dependencies', 'planLevel', 'planStatus'], 'properties': {'name': {'type': 'string'}, 'enums': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Enum name'}, 'values': {'type': 'array', 'items': {'type': 'string', 'pattern': '[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*', 'maxLength': 100}, 'maxItems': 255, 'minItems': 1, 'description': 'Ordered, unique enum values such as DRAFT and PUBLISHED', 'uniqueItems': True}}, 'additionalProperties': False}, 'description': 'Present when ENUMS is requested in details'}, 'group': {'type': 'string'}, 'indexes': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'entity', 'unique', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+', 'maxLength': 16384, 'description': 'Automatically derived Entity.field1-field2 identifier'}, 'entity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity containing the indexed fields or owning-side relations'}, 'fields': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity field or owning-side relation name'}, 'maxItems': 32, 'minItems': 1, 'description': 'Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.', 'uniqueItems': True}, 'unique': {'type': 'boolean', 'description': 'Whether the index enforces a unique field combination'}}, 'additionalProperties': False}, 'description': 'Present when INDEXES is requested in details'}, 'database': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'superclass', 'restEnabled', 'frontendEnabled', 'paginationEnabled', 'searchFilterEnabled', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity name'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'primaryKey': {'type': 'boolean'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'description': 'Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.'}, 'inherits': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the superclass entity; null removes inheritance'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'App module name; null selects the base module. Available with Bootify Professional. '}, 'superclass': {'type': 'boolean'}, 'restEnabled': {'type': 'boolean'}, 'frontendEnabled': {'type': 'boolean'}, 'paginationEnabled': {'type': 'boolean'}, 'searchFilterEnabled': {'type': 'boolean'}}, 'additionalProperties': False}, 'description': 'Present when ENTITIES is requested in details'}, 'frontend': {'type': 'object', 'required': ['framework'], 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'relations': {'type': 'array', 'items': {'type': 'object', 'required': ['identifier', 'type', 'fromEntity', 'toEntity', 'required', 'unidirectional'], 'properties': {'type': {'enum': ['MANY_TO_ONE', 'ONE_TO_MANY', 'ONE_TO_ONE', 'MANY_TO_MANY'], 'type': 'string', 'description': 'Cardinality from fromEntity to toEntity'}, 'toField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations'}, 'required': {'type': 'boolean', 'description': 'Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations'}, 'toEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the to side of the cardinality'}, 'fromField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field'}, 'tableName': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Join-table name; required only for MANY_TO_MANY'}, 'fromEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the from side of the cardinality'}, 'identifier': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 511, 'description': 'Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.'}, 'unidirectional': {'type': 'boolean', 'description': 'Omit the reverse field. Relations across application modules must be unidirectional'}}, 'additionalProperties': False}, 'description': 'Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.'}, 'appModules': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'references'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Application module name'}, 'references': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Referenced module name'}, 'description': 'Effective direct dependencies by module name'}}, 'additionalProperties': False}, 'description': 'Present when APP_MODULES is requested. Includes the implicit base and web modules.'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dataObjects': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'fields'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Data object name'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated DTOs'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'minItems': 1, 'description': 'Complete ordered data object field list.'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'generated': {'type': 'boolean', 'description': 'True for an entity-generated read-only DTO'}}, 'additionalProperties': False}, 'description': 'Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.'}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'required': ['enabled', 'connection'], 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'required': ['modularization', 'multiModulePrefix', 'testSetup', 'actuatorEnabled', 'actuatorEndpoints', 'hateoasEnabled', 'mapStructEnabled', 'serviceInterfaceEnabled'], 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'restControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'method', 'path', 'parameters', 'responseType', 'responseStatus'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Endpoint method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}, 'responseType': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.'}, 'responseStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'securityConfigs': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'loginMethods', 'loginClientIds', 'authenticationMethod', 'roleSource', 'roles', 'registrationEndpoint'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Security config name'}, 'type': {'enum': ['BASIC_AUTH', 'JWT', 'FORM_SESSION', 'KEYCLOAK_RESOURCE_SERVER', 'KEYCLOAK_CLIENT'], 'type': 'string'}, 'roles': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'paths'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'paths': {'type': 'array', 'items': {'type': 'string', 'maxLength': 510, 'minLength': 1}, 'maxItems': 255, 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 255, 'minItems': 1}, 'roleEnum': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Enum supplying role names'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module name; null selects base'}, 'hashField': {'type': ['string', 'null'], 'maxLength': 510}, 'rememberMe': {'enum': [None, 'NONE', 'CHECKBOX', 'ALWAYS'], 'type': ['string', 'null']}, 'roleSource': {'enum': ['CONSTANTS', 'ENUM', 'ENTITY_FIELD'], 'type': 'string'}, 'jwtAlgorithm': {'enum': [None, 'HMAC', 'RSA'], 'type': ['string', 'null']}, 'loginMethods': {'type': 'array', 'items': {'enum': ['DIRECT', 'GOOGLE', 'GITHUB', 'FACEBOOK'], 'type': 'string'}, 'uniqueItems': True}, 'sourceEntity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'User source entity name'}, 'mapEmailField': {'type': ['string', 'null'], 'maxLength': 510}, 'resetUidField': {'type': ['string', 'null'], 'maxLength': 510}, 'usernameField': {'type': ['string', 'null'], 'maxLength': 510}, 'loginClientIds': {'type': 'object', 'additionalProperties': {'type': 'string', 'maxLength': 255, 'minLength': 1}}, 'loginTypeField': {'type': ['string', 'null'], 'maxLength': 510}, 'externalIdField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakRealmId': {'type': ['string', 'null'], 'maxLength': 255}, 'resetStartField': {'type': ['string', 'null'], 'maxLength': 510}, 'keycloakClientId': {'type': ['string', 'null'], 'maxLength': 255}, 'mapLastNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'refreshTokenPath': {'type': ['string', 'null'], 'maxLength': 510}, 'mapFirstNameField': {'type': ['string', 'null'], 'maxLength': 510}, 'roleFieldEnumPath': {'type': ['string', 'null'], 'maxLength': 510}, 'authenticationMethod': {'enum': ['ANNOTATION_BASED', 'CONFIG_BASED'], 'type': 'string'}, 'registrationEndpoint': {'type': 'boolean'}, 'refreshTokenExpiryPath': {'type': ['string', 'null'], 'maxLength': 510}}, 'additionalProperties': False}, 'description': 'Present when SECURITY_CONFIGS is requested in details'}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}, 'frontendControllers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'generated', 'path', 'parameters', 'endpoints'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Controller name'}, 'path': {'type': 'string'}, 'entity': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Source entity name for generated controllers'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'path', 'parameters', 'inputType'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Frontend method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Data object name; null when the method has no input'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'generated': {'type': 'boolean', 'description': 'True for entity-generated read-only controllers'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'query'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}, 'query': {'type': 'boolean', 'description': 'Whether the parameter originates from the query declaration'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Parameters in path order; query is derived from the path declaration'}}, 'additionalProperties': False}, 'description': 'Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. '}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'required': ['applicationFormat', 'packageStructure', 'includeAgentInstructions', 'openApiEnabled', 'dockerComposeEnabled', 'javaVersion', 'deployment'], 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'availableSecurityPaths': {'type': 'object', 'required': ['rest', 'frontend'], 'properties': {'rest': {'type': 'array', 'items': {'type': 'string'}}, 'frontend': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Paths currently available for a new security config; use listSecurityPaths with a config name when editing it', 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'additionalProperties': False}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'projectId': {'type': 'string'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'projectUrl': {'type': 'string', 'format': 'uri', 'description': 'The project URL that should always be shown to the user immediately after creation so they can follow all subsequent MCP changes live in their browser'}}, 'additionalProperties': False}
updateAdvancedOptions
Update advanced options
Available with Bootify Professional. Update one or more advanced project options. MODULITH generates package-based application modules, while MULTI_MODULE generates physical Gradle or Maven modules. Select either before defining an application-module graph. Background information: https://bootify.io/docs/modules-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string', 'description': 'Generated test setup'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string', 'description': 'Spring Session persistence; JDBC uses the configured relational or embedded database'}, 'hateoasEnabled': {'type': 'boolean', 'description': 'Use HATEOAS for the REST API'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string', 'description': 'NONE generates a monolith; MODULITH and MULTI_MODULE activate the application-module graph'}, 'actuatorEnabled': {'type': 'boolean', 'description': 'Add Spring Boot Actuator'}, 'mapStructEnabled': {'type': 'boolean', 'description': 'Use MapStruct instead of generated mapping code'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}, 'description': 'Actuator endpoints to expose; an empty list exposes all available endpoints', 'uniqueItems': True}, 'multiModulePrefix': {'type': 'boolean', 'description': 'Prefix generated module artifact names with the project name in MULTI_MODULE mode'}, 'serviceInterfaceEnabled': {'type': 'boolean', 'description': 'Generate separate service interfaces and implementations'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateAppModule
Update a project application module
Available with Bootify Professional. Update or rename a custom application module identified by its current name. When provided, references replace all current direct dependencies. The same graph defines package boundaries for MODULITH and physical build modules for MULTI_MODULE; select either with updateAdvancedOptions first. The implicit base module is the lowest-level shared module and is integrated directly or transitively by every other module. A custom module with no references depends on base. The implicit web module is the highest-level application wrapper and automatically depends on every custom root module; in MULTI_MODULE it assembles the executable application. Neither implicit module can be edited. Dependencies must be acyclic and should point from a feature toward the lower-level modules it uses. Background information: https://bootify.io/docs/modules-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Current name of the custom module'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'New module name; omit to keep its name'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'references': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Referenced custom module name'}, 'maxItems': 255, 'description': 'Unique names of existing custom modules used as direct dependencies. Omit or use an empty array to depend on the implicit base module.', 'uniqueItems': True}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateDatabase
Update project database
Update the database and schema management settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateDatabaseNaming
Update project database naming
Update one or more database naming settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'tablePrefix': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*'}, 'tableSuffix': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'pluralizeTableName': {'type': 'boolean'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateDataObject
Update a project data object
Update or rename a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the data object'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'minItems': 1, 'description': 'Complete ordered data object field list.'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'New data object name; omit to keep its name'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module; null selects base. Available with Bootify Professional. '}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateDateFields
Update project date fields
Enable or disable generated date fields and configure their names. Background information: https://bootify.io/docs/general-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'enabled': {'type': 'boolean'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'dateCreatedName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*'}, 'lastUpdatedName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateDeveloperPreferences
Update developer preferences
Update one or more developer preferences of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean', 'description': 'Generate OpenAPI documentation and Swagger UI'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string', 'description': 'Format of the generated Spring application configuration'}, 'dockerComposeEnabled': {'type': 'boolean', 'description': 'Generate Docker Compose support for local development'}, 'includeAgentInstructions': {'type': 'boolean', 'description': 'Generate AGENTS.md with coding agent instructions'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateEntity
Update a project entity
Update or rename an entity identified by its current name. Only provided properties are changed; a provided fields array replaces all fields.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the entity to update'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'max': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Maximum length for STRING or LIST<STRING> fields'}, 'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field name'}, 'type': {'type': 'string', 'maxLength': 255, 'description': 'Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.'}, 'scale': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision'}, 'required': {'type': 'boolean'}, 'precision': {'type': 'integer', 'maximum': 99999, 'minimum': 1, 'description': 'Total decimal digits for NUMERIC or LIST<NUMERIC> fields'}, 'primaryKey': {'type': 'boolean'}, 'fileEndings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 255, 'description': 'Allowed file endings for FILE fields', 'uniqueItems': True}}, 'additionalProperties': False}, 'maxItems': 1024, 'description': 'Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'New entity name; omit to keep the current name'}, 'inherits': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Name of the superclass entity; null removes inheritance'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'App module name; null selects the base module. Available with Bootify Professional. '}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'superclass': {'type': 'boolean'}, 'restEnabled': {'type': 'boolean'}, 'frontendEnabled': {'type': 'boolean'}, 'paginationEnabled': {'type': 'boolean'}, 'searchFilterEnabled': {'type': 'boolean'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateEnum
Update a project enum
Update or rename an enum identified by its current name. Provide newName, values, or both.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Current name of the enum to update'}, 'values': {'type': 'array', 'items': {'type': 'string', 'pattern': '[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*', 'maxLength': 100}, 'maxItems': 255, 'minItems': 1, 'description': 'Ordered, unique enum values such as DRAFT and PUBLISHED', 'uniqueItems': True}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'New enum name; omit to keep the current name'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateFrontend
Update project frontend
Update one or more frontend settings of an existing Bootify project. Background information: https://bootify.io/docs/frontend-settings.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Used only with Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Used only with Vite or Webpack for Thymeleaf and JTE'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateFrontendController
Update a frontend controller
Available with Bootify Professional. Update or rename a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the frontend controller'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*', 'maxLength': 255, 'description': 'Controller base path, with optional {name} placeholders'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'New controller name; omit to keep its name'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name; null selects the web module'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'path', 'parameters'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Frontend method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Existing data object name, including entity-generated DTOs, accessible from the controller module. No built-ins, enums or collections. Omit when the method has no input'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateIndex
Update a database index
Update an index by its current Entity.field1-field2 identifier. Only provided properties are changed; the response contains its updated identifier.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+', 'maxLength': 16384, 'description': 'Current Entity.field1-field2 identifier'}, 'entity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity containing the indexed fields or owning-side relations'}, 'fields': {'type': 'array', 'items': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity field or owning-side relation name'}, 'maxItems': 32, 'minItems': 1, 'description': 'Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.', 'uniqueItems': True}, 'unique': {'type': 'boolean', 'description': 'Whether the index enforces a unique field combination'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'name': {'type': 'string', 'description': 'Current canonical selector; copy into subsequent update or delete calls'}, 'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateMailSettings
Update mail settings
Available with Bootify Professional. Enable or disable mail support and configure the generated application's SMTP connection.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'from': {'type': ['string', 'null'], 'pattern': '[A-Za-z0-9_\\-\\+]+(\\.[_A-Za-z0-9\\-]+)*@[A-Za-z0-9\\-]+(\\.[A-Za-z0-9\\-]+)*(\\.[A-Za-z]{2,})'}, 'host': {'type': ['string', 'null'], 'pattern': '[a-zA-Z0-9]+((-|\\.)[a-zA-Z0-9]+)*(\\.[A-Za-z]{2,})'}, 'enabled': {'type': 'boolean'}, 'username': {'type': ['string', 'null'], 'pattern': '.+'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': ['string', 'null'], 'pattern': '.+'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateRelation
Update an entity relation
Update a relation whose type describes the cardinality from fromEntity to toEntity. For MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY the owning field is fromEntity.fromField; for ONE_TO_MANY it is toEntity.toField. The response includes that canonical owning-side value as identifier. Bidirectional relations require both fields. Background information: https://bootify.io/docs/jpa-relationship-types-with-examples.html. Identify the existing relation with its current identifier returned by addRelation, updateRelation or getProject; do not reconstruct internal IDs. Only provided relation properties are changed. If an update changes the owning entity or field, use the newly returned identifier for subsequent calls.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'identifier'], 'properties': {'type': {'enum': ['MANY_TO_ONE', 'ONE_TO_MANY', 'ONE_TO_ONE', 'MANY_TO_MANY'], 'type': 'string', 'description': 'Cardinality from fromEntity to toEntity'}, 'toField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations'}, 'required': {'type': 'boolean', 'description': 'Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations'}, 'toEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the to side of the cardinality'}, 'fromField': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'tableName': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Join-table name; required only for MANY_TO_MANY'}, 'fromEntity': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Entity on the from side of the cardinality'}, 'identifier': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 511, 'description': 'Current identifier copied verbatim from addRelation, updateRelation or getProject RELATIONS'}, 'unidirectional': {'type': 'boolean', 'description': 'Omit the reverse field. Relations across application modules must be unidirectional'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'identifier': {'type': 'string', 'description': 'Current canonical selector; copy into subsequent update or delete calls'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateRestController
Update a REST controller
Available with Bootify Professional. Update or rename a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Current name of the REST controller'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*', 'maxLength': 255, 'description': 'Controller base path, with optional {name} placeholders'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'New controller name; omit to keep its name'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom application module name; null selects the web module'}, 'endpoints': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'method', 'path', 'parameters', 'responseType', 'responseStatus'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Endpoint method name'}, 'path': {'type': 'string', 'pattern': '/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?', 'maxLength': 255, 'description': 'Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'inputType': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}, 'responseType': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.'}, 'responseStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Parameter name'}, 'type': {'enum': ['BOOLEAN', 'STRING', 'INTEGER', 'LONG', 'UUID'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 255, 'description': 'Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.'}}, 'minProperties': 3, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateSecurityConfig
Update basic security configuration
Change only the identity, type, module or authentication mode. Changing type resets type-specific settings to defaults.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId', 'name'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'Current config name'}, 'type': {'enum': ['BASIC_AUTH', 'JWT', 'FORM_SESSION', 'KEYCLOAK_RESOURCE_SERVER', 'KEYCLOAK_CLIENT'], 'type': 'string'}, 'newName': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 100, 'description': 'New config name'}, 'appModule': {'type': ['string', 'null'], 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'maxLength': 255, 'description': 'Custom app module; null selects base'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'authenticationMethod': {'enum': ['ANNOTATION_BASED', 'CONFIG_BASED'], 'type': 'string'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateSettings
Update project settings
Update one or more basic settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'name': {'type': 'string', 'pattern': '[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*', 'description': 'A project name such as my-project'}, 'group': {'type': 'string', 'pattern': '[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*', 'description': 'A group name such as com.my-group, used for build settings and package name'}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'lombokEnabled': {'type': 'boolean', 'description': 'Ignored for Kotlin projects'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
updateUtilities
Update utilities
Include utilities for custom code even when the project does not require them. Required utilities cannot be disabled. They remain included when no longer required, until explicitly disabled. Omitted options retain their values. Inspect utilities in getProject for the current inclusion state.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'minProperties': 2, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['projectId', 'changes', 'affectedAreas'], 'properties': {'changes': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'group': {'type': 'string'}, 'database': {'type': 'object', 'properties': {'type': {'enum': ['NONE', 'OTHER', 'MSSQL', 'MYSQL', 'MARIADB', 'ORACLE', 'POSTGRES', 'MONGODB', 'DERBY', 'H2', 'HSQL'], 'type': 'string'}, 'schemaType': {'enum': ['NONE', 'HIBERNATE', 'FLYWAY', 'LIQUIBASE'], 'type': 'string'}, 'tablePrefix': {'type': 'string'}, 'tableSuffix': {'type': 'string'}, 'namingStrategy': {'enum': ['NONE', 'UPPERCASE_ALL', 'UPPERCASE_TABLES', 'CAMELCASE_ALL', 'CAMELCASE_TABLES'], 'type': 'string'}, 'dateCreatedName': {'type': 'string'}, 'lastUpdatedName': {'type': 'string'}, 'mongoSchemaType': {'enum': ['NONE', 'MONGOCK'], 'type': 'string'}, 'dateFieldsEnabled': {'type': 'boolean'}, 'pluralizeTableName': {'type': 'boolean'}}, 'additionalProperties': False}, 'frontend': {'type': 'object', 'properties': {'buildTool': {'enum': ['NONE', 'VITE', 'WEBPACK'], 'type': 'string'}, 'framework': {'enum': ['NONE', 'THYMELEAF', 'JTE', 'ANGULAR', 'REACT'], 'type': 'string'}, 'htmxEnabled': {'type': 'boolean', 'description': 'Present only for Thymeleaf and JTE'}, 'cssFramework': {'enum': ['BOOTSTRAP', 'TAILWIND'], 'type': 'string'}, 'typescriptEnabled': {'type': 'boolean', 'description': 'Present only for Vite or Webpack with Thymeleaf and JTE'}}, 'additionalProperties': False}, 'language': {'enum': ['JAVA', 'KOTLIN'], 'type': 'string'}, 'buildType': {'enum': ['GRADLE', 'MAVEN'], 'type': 'string'}, 'planLevel': {'enum': ['FREE', 'PROFESSIONAL', 'ENTERPRISE'], 'type': 'string', 'description': 'The feature level assigned to the project'}, 'planStatus': {'enum': ['VALID', 'EXPIRED'], 'type': 'string', 'description': "Whether the project's plan is still valid"}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.', 'uniqueItems': True}, 'mailSettings': {'type': 'object', 'properties': {'from': {'type': 'string'}, 'host': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'username': {'type': 'string'}, 'connection': {'enum': ['TLS', 'SSL'], 'type': 'string'}, 'displayName': {'type': 'string'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'lombokEnabled': {'type': 'boolean', 'description': 'Whether Lombok is enabled; present only for Java projects'}, 'advancedOptions': {'type': 'object', 'properties': {'testSetup': {'enum': ['NONE', 'TESTCONTAINERS', 'PLAYWRIGHT', 'ALL'], 'type': 'string'}, 'springSession': {'enum': ['NONE', 'JDBC', 'REDIS'], 'type': 'string'}, 'hateoasEnabled': {'type': 'boolean'}, 'modularization': {'enum': ['NONE', 'MODULITH', 'MULTI_MODULE'], 'type': 'string'}, 'actuatorEnabled': {'type': 'boolean'}, 'mapStructEnabled': {'type': 'boolean'}, 'actuatorEndpoints': {'type': 'array', 'items': {'enum': ['auditevents', 'beans', 'caches', 'conditions', 'configprops', 'env', 'flyway', 'health', 'httpexchanges', 'info', 'integrationgraph', 'loggers', 'liquibase', 'metrics', 'mappings', 'modulith', 'quartz', 'scheduledtasks', 'sessions', 'shutdown', 'startup', 'threaddump', 'heapdump', 'logfile', 'prometheus'], 'type': 'string'}}, 'multiModulePrefix': {'type': 'boolean'}, 'serviceInterfaceEnabled': {'type': 'boolean'}}, 'description': 'Available with Bootify Professional. ', 'additionalProperties': False}, 'includeInputRow': {'type': 'boolean', 'description': 'Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React'}, 'includeFileHandling': {'type': 'boolean', 'description': 'Include file handling services and database storage'}, 'includeSearchFilter': {'type': 'boolean', 'description': 'Include frontend search filter utilities; requires a frontend framework'}, 'developerPreferences': {'type': 'object', 'properties': {'deployment': {'enum': ['NONE', 'HEROKU_GITHUB', 'HEROKU_GITLAB'], 'type': 'string'}, 'javaVersion': {'enum': [17, 21, 25], 'type': 'integer'}, 'openApiEnabled': {'type': 'boolean'}, 'packageStructure': {'enum': ['TECHNICAL', 'DOMAIN_DRIVEN', 'MIXED'], 'type': 'string', 'description': 'Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.'}, 'applicationFormat': {'enum': ['YAML', 'PROPERTIES'], 'type': 'string'}, 'dockerComposeEnabled': {'type': 'boolean'}, 'includeAgentInstructions': {'type': 'boolean'}}, 'additionalProperties': False}, 'includePaginationAndSorting': {'type': 'boolean', 'description': 'Include frontend pagination and sorting utilities; requires a frontend framework'}}, 'description': 'Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.', 'additionalProperties': False}, 'projectId': {'type': 'string', 'description': 'The project ID returned by startProject'}, 'affectedAreas': {'type': 'array', 'items': {'enum': ['APP_MODULES', 'ENUMS', 'DATA_OBJECTS', 'ENTITIES', 'RELATIONS', 'INDEXES', 'REST_CONTROLLERS', 'FRONTEND_CONTROLLERS', 'SECURITY_CONFIGS'], 'type': 'string'}, 'description': 'Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.', 'uniqueItems': True}, 'userProjectChanged': {'type': 'boolean', 'const': True, 'description': 'Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours'}}, 'additionalProperties': False}
Añadido
exportProject
1 de October de 2026 a las 02:40
Añadido
getProjectFile
1 de October de 2026 a las 02:40
Añadido
listProjectFiles
1 de October de 2026 a las 02:40
Añadido
getOpenApiPreview
1 de October de 2026 a las 02:40
Añadido
deleteSecurityConfig
1 de October de 2026 a las 02:40
Añadido
setSecurityRoles
1 de October de 2026 a las 02:40
Añadido
configureSecurityUserSource
1 de October de 2026 a las 02:40
Añadido
configureSecurityLogin
1 de October de 2026 a las 02:40
Añadido
updateSecurityConfig
1 de October de 2026 a las 02:40
Añadido
addSecurityConfig
1 de October de 2026 a las 02:40
Añadido
listSecurityPaths
1 de October de 2026 a las 02:40
Añadido
deleteFrontendController
1 de October de 2026 a las 02:40
Añadido
updateFrontendController
1 de October de 2026 a las 02:40
Añadido
addFrontendController
1 de October de 2026 a las 02:40
Añadido
deleteRestController
1 de October de 2026 a las 02:40
Añadido
updateRestController
1 de October de 2026 a las 02:40
Añadido
addRestController
1 de October de 2026 a las 02:40
Añadido
deleteIndex
1 de October de 2026 a las 02:40
Añadido
updateIndex
1 de October de 2026 a las 02:40
Añadido
addIndex
1 de October de 2026 a las 02:40
Añadido
deleteRelation
1 de October de 2026 a las 02:40
Añadido
updateRelation
1 de October de 2026 a las 02:40
Añadido
addRelation
1 de October de 2026 a las 02:40
Añadido
importSqlSchema
1 de October de 2026 a las 02:40
Añadido
deleteEntity
1 de October de 2026 a las 02:40
Añadido
updateEntity
1 de October de 2026 a las 02:40
Añadido
addEntity
1 de October de 2026 a las 02:40
Añadido
deleteDataObject
1 de October de 2026 a las 02:40
Añadido
updateDataObject
1 de October de 2026 a las 02:40
Añadido
addDataObject
1 de October de 2026 a las 02:40