Skip to main content
Glama

dhis2_android_configure_storage

Configure local storage settings for DHIS2 Android apps, including database type, encryption, caching strategies, and data retention policies.

Instructions

Set up local storage and database configuration for DHIS2 Android app

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
storageTypeYesLocal database technology
encryptionLevelNoDatabase encryption level
cacheStrategyNo
purgePolicyNo

Implementation Reference

  • MCP tool handler that extracts arguments, calls generateStorageConfiguration from android-generators.ts, and returns the generated storage configuration as text content.
    case 'dhis2_android_configure_storage': const storageArgs = args as any; const storageConfig = generateStorageConfiguration(storageArgs); return { content: [ { type: 'text', text: storageConfig, }, ], };
  • Core helper function that generates comprehensive Android storage configuration code including database setup (Room/SQLite/Realm), encryption, caching strategies, purge policies, and usage examples based on input parameters.
    export function generateStorageConfiguration(args: any): string { const { storageType, encryptionLevel, cacheStrategy, purgePolicy } = args; return `# DHIS2 Android Storage Configuration ## Database Technology: ${storageType.toUpperCase()} ## Encryption Level: ${encryptionLevel.toUpperCase()} ${generateDatabaseConfiguration(storageType, encryptionLevel)} ${cacheStrategy ? generateCacheStrategy(cacheStrategy) : ''} ${purgePolicy?.enabled ? generatePurgePolicy(purgePolicy) : ''} ## Usage Examples \`\`\`kotlin @Database( entities = [DataElement::class, OrganisationUnit::class, Event::class], version = 1, exportSchema = false ) ${encryptionLevel !== 'none' ? '@TypeConverters(CryptoConverter::class)' : ''} abstract class DHIS2Database : RoomDatabase() { abstract fun dataElementDao(): DataElementDao abstract fun organisationUnitDao(): OrganisationUnitDao abstract fun eventDao(): EventDao companion object { @Volatile private var INSTANCE: DHIS2Database? = null fun getDatabase(context: Context): DHIS2Database { return INSTANCE ?: synchronized(this) { val instance = Room.databaseBuilder( context.applicationContext, DHIS2Database::class.java, "dhis2_database" ).apply { ${encryptionLevel !== 'none' ? 'openHelperFactory(SupportFactory(getPassphrase()))' : ''} ${cacheStrategy ? 'setQueryExecutor(Executors.newFixedThreadPool(4))' : ''} }.build() INSTANCE = instance instance } } ${encryptionLevel !== 'none' ? ` private fun getPassphrase(): ByteArray { // Generate or retrieve secure passphrase return "your-secure-passphrase".toByteArray() }` : ''} } } \`\`\` `; }
  • Tool permissions registration mapping 'dhis2_android_configure_storage' to 'canConfigureMobile' permission check in PermissionSystem.TOOL_PERMISSIONS Map.
    ['dhis2_android_configure_storage', 'canConfigureMobile'],

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dradebo/dhis2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server