Package com.cloudforge.core.interfaces
Interface DatabaseSpec
- All Known Implementing Classes:
GitLabApplicationSpec,GrafanaApplicationSpec,HarborApplicationSpec,MattermostApplicationSpec,MattermostTeamApplicationSpec,MetabaseApplicationSpec,SupersetApplicationSpec
public interface DatabaseSpec
Database specification interface for applications requiring external databases.
Applications implementing this interface can request managed RDS databases instead of using embedded file-based databases.
Supported Engines:
- PostgreSQL (postgres)
- MySQL (mysql)
- MariaDB (mariadb)
- Aurora PostgreSQL (aurora-postgresql)
- Aurora MySQL (aurora-mysql)
Example Usage:
public class MetabaseApplicationSpec implements ApplicationSpec, DatabaseSpec {
@Override
public DatabaseRequirement databaseRequirement() {
return DatabaseRequirement.optional("postgres", "15");
}
@Override
public Map<String, String> containerEnvironmentVariables(
String fqdn, boolean sslEnabled, String authMode, DatabaseConnection dbConn) {
if (dbConn != null) {
return Map.of(
"MB_DB_TYPE", "postgres",
"MB_DB_HOST", dbConn.endpoint(),
"MB_DB_PORT", String.valueOf(dbConn.port()),
"MB_DB_DBNAME", dbConn.databaseName(),
"MB_DB_USER", dbConn.username(),
"MB_DB_PASS", dbConn.passwordSecretArn()
);
} else {
// Fallback to H2 embedded
return Map.of("MB_DB_TYPE", "h2");
}
}
}
- Since:
- 3.0.0
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordDatabase connection information provided to applications.static final recordDatabase requirement specification. -
Method Summary
Modifier and TypeMethodDescriptiondefault intDatabase backup retention requirements.Database initialization SQL scripts to run after creation.Database configuration overrides for specific engines.Database requirement for this application.default intNumber of read replicas for production.default booleanWhether this application requires read replicas for scaling.
-
Method Details
-
databaseRequirement
DatabaseSpec.DatabaseRequirement databaseRequirement()Database requirement for this application.- Returns:
- database requirement (required, optional, or none)
-
databaseInitScripts
Database initialization SQL scripts to run after creation.- Returns:
- list of SQL scripts, or empty list
-
databaseParameters
Database configuration overrides for specific engines.Example PostgreSQL parameters:
- max_connections - 200
- shared_buffers - {DBInstanceClassMemory/4096}
- work_mem - 16MB
- log_statement - all
- Returns:
- map of parameter group settings
-
backupRetentionDays
default int backupRetentionDays()Database backup retention requirements.- Returns:
- backup retention days (1-35), default 7
-
requiresReadReplicas
default boolean requiresReadReplicas()Whether this application requires read replicas for scaling.- Returns:
- true if read replicas should be created
-
readReplicaCount
default int readReplicaCount()Number of read replicas for production.- Returns:
- read replica count (0-5), default 0
-