Data table - Where runs after loading - Exposing other users data

A data table is loaded in a modal. Is the WHERE applied after the data is loaded? This is what it shows to the user as it loads -

After it finishes loading it correctly shows -

image

We can’t have the modal showing other customer information, even briefly. I wouldn’t think the modal would return all that data to the interface. Please advise.

Thanks,
Tim

Hello @Tim_Jones

A data table is loaded in a modal. Is the WHERE applied after the data is loaded?

No, where clause is passed to the server. And we apply it to DB request.

As for your problem, could you please tell me, which result you are trying to achieve? Unfortunately, I am not sure if I understand your problem correctly.

Regards, Dima.

Hi @Dima,

The use has 1 row and should only ever see 1 row. But as the data table loads, they are seeing 10 rows of data, exposing other users’ data to this user.

I’m trying to understand why this is happening as it is bad.

Tim

I took a video of the behavior -

https://www.veed.io/view/8ac4f87b-ff0f-45fa-8488-6f038b3b0b0a

You can see as the modal opens the first time, there are many rows of data incorrectly being displayed. Once it finishes loading, there is only one. And every subsequent time I open the modal, there is only one row.

Tim

What does the logic for retrieving the data look like?

Hey @mark-piller,

Thanks for jumping in. We’ve been refining the way the data was retrieved so please ignore all the disabled blocks.

That could be caused by the logic of your component.

The first request goes to the server when sellersFundraisedObjectId is empty, so whereClause at this moment is also empty.

You could avoid it, if you add visibility logic for your table, and show only if sellersFundraiserObjectId is not empty.

Check the Network tab in the browser’s Devtools to see what the API requests look like. It will help you diagnose the problem further.

Can you explain this -

Where is this first request happening? I’m not following the execution order here.

Your table makes requests each time whereClause was changed. The handler runs when - Page/App Data was changed.

So, I assume your table makes the first request with empty whereClause, as your if condition was skipped.

You could check it in the browser devtools - network tab.

Hi @Dima,

What else listens to page/app data changes?

Thanks,
Tim

Hi Tim,

This documentation page should answer your question:
https://backendless.com/docs/uibuilder/ui_data_binding.html

If not, please let us know.

Regards,
Mark