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
| Name | Required | Description | Default |
|---|---|---|---|
| storageType | Yes | Local database technology | |
| encryptionLevel | No | Database encryption level | |
| cacheStrategy | No | ||
| purgePolicy | No |
Implementation Reference
- src/index.ts:1273-1283 (handler)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, }, ], };
- src/android-generators.ts:1186-1242 (helper)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() }` : ''} } } \`\`\` `; }
- src/permission-system.ts:158-158 (registration)Tool permissions registration mapping 'dhis2_android_configure_storage' to 'canConfigureMobile' permission check in PermissionSystem.TOOL_PERMISSIONS Map.['dhis2_android_configure_storage', 'canConfigureMobile'],