Annotation Interface CmsPlugin
CMS specifications annotated with this annotation are automatically discovered and loaded by the CloudForge CMS deployment system via Java ServiceLoader. This enables support for content management systems, e-commerce platforms, and social networking applications without modifying core code.
Usage example
@CmsPlugin(
value = "wordpress",
category = "cms",
displayName = "WordPress",
description = "PHP-based CMS and blogging platform",
phpVersion = "8.2",
defaultCpu = 1024,
defaultMemory = 2048,
supportsOidc = true,
oidcMethod = "OpenID Connect Generic Plugin",
requiresDatabase = true,
supportedDatabases = {"mysql", "mariadb"},
supportsS3Media = true,
supportsObjectCache = true,
supportsMultisite = true
)
public class WordPressApplicationSpec implements CmsSpec {
// Implementation
}
CMS categories
- cms: Content Management Systems (WordPress, Joomla, Drupal, Concrete5, TYPO3)
- ecommerce: E-commerce Platforms (WooCommerce, Magento, PrestaShop, OpenCart, Shopware)
- social: Social Networking (Dolphin/UNA, HumHub, Elgg, phpFox)
- forum: Forum Software (phpBB, Discourse, Flarum, MyBB, XenForo)
- wiki: Wiki Platforms (MediaWiki, DokuWiki, BookStack)
- lms: Learning Management (Moodle, Canvas, Chamilo)
- Since:
- 3.1.0
- See Also:
-
Required Element Summary
Required Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionCMS category for grouping and discovery.intDefault Fargate CPU units when not specified in deployment context.Docker Hub image or registry path for the official container image.Default EC2 instance type when not specified in deployment context.intDefault Fargate memory in MB when not specified in deployment context.Brief description of the CMS platform's purpose.Human-readable display name for the CMS.OIDC integration method description.Required PHP version for this CMS.booleanWhether this CMS requires an external database (RDS).String[]Supported database engines for this CMS.booleanWhether this CMS supports EC2 deployment.booleanWhether this CMS supports Fargate deployment.booleanWhether multi-site/multi-store functionality is supported.booleanWhether Redis/Memcached object caching is supported.booleanWhether this CMS supports OIDC authentication integration.booleanWhether S3 media offloading is supported.Official website URL for the CMS.
-
Element Details
-
value
String valueCMS identifier used in deployment configuration.This value is used in deployment-context.json to specify which CMS to deploy:
{ "applicationId": "wordpress", "runtimeType": "FARGATE" }Examples: "wordpress", "woocommerce", "magento", "drupal", "joomla", "prestashop", "dolphin", "moodle", "mediawiki"
- Returns:
- the CMS identifier (lowercase, kebab-case)
-
category
String categoryCMS category for grouping and discovery.Standard categories:
- cms - Content management systems
- ecommerce - E-commerce platforms
- social - Social networking platforms
- forum - Forum and discussion boards
- wiki - Wiki and documentation platforms
- lms - Learning management systems
- Returns:
- the CMS category (default: "cms")
- Default:
"cms"
-
displayName
String displayNameHuman-readable display name for the CMS.Used in CLI tools, logging, and documentation.
Examples: "WordPress", "Magento 2", "Drupal", "Dolphin"
- Returns:
- the display name (defaults to capitalized value if empty)
- Default:
""
-
description
String descriptionBrief description of the CMS platform's purpose.Examples:
- "PHP-based CMS and blogging platform"
- "Adobe Commerce-compatible e-commerce platform"
- "Social networking and community platform"
- Returns:
- the CMS description
- Default:
""
-
phpVersion
String phpVersionRequired PHP version for this CMS.Common versions:
- "8.2" - WordPress 6.4+, Magento 2.4.6+, Drupal 10
- "8.1" - PrestaShop 8.x, Joomla 5
- "8.0" - Legacy support
- Returns:
- PHP version string (default: "8.2")
- Default:
"8.2"
-
defaultCpu
int defaultCpuDefault Fargate CPU units when not specified in deployment context.Recommended values by CMS type:
- Simple CMS (WordPress, Joomla): 1024 (1 vCPU)
- E-commerce (WooCommerce, PrestaShop): 2048 (2 vCPU)
- Enterprise (Magento): 4096 (4 vCPU)
- Returns:
- default CPU units (256, 512, 1024, 2048, 4096)
- Default:
1024
-
defaultMemory
int defaultMemoryDefault Fargate memory in MB when not specified in deployment context.Recommended values by CMS type:
- Simple CMS: 2048 MB
- E-commerce: 4096 MB
- Enterprise: 8192 MB
- Returns:
- default memory in MB
- Default:
2048
-
defaultInstanceType
String defaultInstanceTypeDefault EC2 instance type when not specified in deployment context.Recommended types:
- t3.small - Simple CMS, low traffic
- t3.medium - E-commerce, moderate traffic
- t3.large - Enterprise, high traffic
- m5.large - Production e-commerce
- Returns:
- EC2 instance type (default: "t3.small")
- Default:
"t3.small"
-
supportsOidc
boolean supportsOidcWhether this CMS supports OIDC authentication integration.OIDC support enables single sign-on with:
- AWS Cognito
- IAM Identity Center
- External OIDC providers (Okta, Auth0, etc.)
- Returns:
- true if OIDC integration is supported (default: false)
- Default:
false
-
oidcMethod
String oidcMethodOIDC integration method description.Examples:
- "OpenID Connect Generic Plugin" (WordPress)
- "miniOrange OAuth module" (Magento)
- "Native OpenID Connect module" (Drupal)
- "OAuth2 module" (Dolphin)
- Returns:
- description of OIDC integration method
- Default:
"plugin"
-
requiresDatabase
boolean requiresDatabaseWhether this CMS requires an external database (RDS).Most CMS platforms require a database. Exceptions might include flat-file CMS systems like Grav or Statamic.
- Returns:
- true if external database is required (default: true)
- Default:
true
-
supportedDatabases
String[] supportedDatabasesSupported database engines for this CMS.Common engines:
- "mysql" - MySQL 8.0+
- "mariadb" - MariaDB 10.6+
- "postgres" - PostgreSQL 14+ (Drupal, some enterprise CMS)
- Returns:
- array of supported database engine identifiers
- Default:
{"mysql", "mariadb"}
-
supportsS3Media
boolean supportsS3MediaWhether S3 media offloading is supported.S3 media storage enables:
- Horizontal scaling (multiple instances)
- CDN integration
- Reduced EFS/EBS storage costs
- Returns:
- true if S3 media storage is supported (default: false)
- Default:
false
-
supportsObjectCache
boolean supportsObjectCacheWhether Redis/Memcached object caching is supported.Object caching improves performance by caching:
- Database query results
- Computed page fragments
- Session data
- Returns:
- true if object caching is supported (default: false)
- Default:
false
-
supportsMultisite
boolean supportsMultisiteWhether multi-site/multi-store functionality is supported.Multi-site features:
- WordPress Multisite Network
- Magento Multi-store
- Drupal Multi-site
- PrestaShop Multi-shop
- Returns:
- true if multi-site is supported (default: false)
- Default:
false
-
supportsFargate
boolean supportsFargateWhether this CMS supports Fargate deployment.Most PHP CMS platforms support Fargate containerization.
- Returns:
- true if Fargate is supported (default: true)
- Default:
true
-
supportsEc2
boolean supportsEc2Whether this CMS supports EC2 deployment.EC2 deployment provides more flexibility for complex configurations and legacy requirements.
- Returns:
- true if EC2 is supported (default: true)
- Default:
true
-
websiteUrl
String websiteUrlOfficial website URL for the CMS.Used for documentation and reference links.
- Returns:
- CMS official website URL
- Default:
""
-
defaultImage
String defaultImageDocker Hub image or registry path for the official container image.Examples:
- "wordpress:php8.2-fpm-alpine"
- "magento/magento-cloud-docker-php:8.2-fpm"
- "drupal:10-php8.2-fpm-alpine"
- Returns:
- container image reference
- Default:
""
-