Simplified some code and made the client datasource work with cache updates, it turned out it was missing a primaryKey field.