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