async def METHOD_NAME(config: dict):
    config = DatabaseFetcherConfig(**config)
    resource = await resource_db.load(config.source.id)
    credentials = resource.credentials.production
    pool = await Connection(**credentials).connect()
    async with pool.acquire() as conn:
        async with conn.cursor(aiomysql.DictCursor) as cursor:
            await cursor.execute(f"SHOW DATABASES")
            result = await cursor.fetchall()
            await cursor.close()
            conn.close()
            return {
                "total": len(result),
                "result": [{"name": list(record.values())[0], "id": list(record.values())[0]} for record in result]
            }