Sync only User related data

Hi!
I wonder if shared table are entirely copied (synced) to the user’s device when I apply a security filter to a table that references a shared table. Or if only the referenced rows of the shared table are synced.

My clients subscribe to frequently receive articles. Many clients can subscribe to the same type of articles, so the table Article is shared. I have a table Assignment that match clients to articles they subscribed for. That table Assignment references the table Article. I don’t want a client to see all my articles, ideally they only sees the articles they subscribed for. This is why I plan to use a security filter on the table Assignment. So I wonder if the table Article will be sync to the client’device since it has no UserEmail column?
(the table Article itself reference a table Material since an article has a list of material. The table Material is also Shared. So My question worth for that table too)

thank you in advance

It depends what kind of security filter are you using with the Article table. Would you please copy & paste that formula?

Without a security filter, all rows of the table are coped to the user’s device. With a security filter, only those rows matching the filter are coped to the user’s device. References between tables have no effect at all on whether rows are copied–unless the security filter explicitly considers references. Even then, the security filter can only affect rows of its own table.

You’ll need to use a security filter on each table with rows you want to withhold.

In your case, you’ll want a security filter on Assignment that filters by user:

(USEREMAIL() = [UserEmail])

Then a security filter on Article that filters by the article’s presence in the filtered Assignment table; e.g.:

IN([Article ID], Assignment[Article ID])

And then for Material; e.g.:

IN([Article ID], Article[Article ID])
1 Like

Hi Steve,

If I understand well your post, the good news is my need is realizable with Appsheet
I will read the doc about IN() expressions and how they affect security filters.
Thank you so much

2 Likes

Hi Aleksi,
I meant filter like [UserEmail] = USEREMAIL() but steve recommanded me to add security filters with IN() expressions on my shared table to achieve my goal on having that shared tables filtered

Yes Steve’s assumption seems to be correct.