[PREVIEW] Limited security filter support in “Quick sync”

We are excited to announce an update to support some security filters in the “Quick sync” feature.

Quick sync feature allows data updates to be available to users within 1-2 seconds of the updates. This feature was originally announced in this post and is released under the Preview program.

With this announcement, simple security filters that rely on row-scoped calculations (such as value comparisons) or user settings are supported for use with Quick sync. More complex security filters, for example those that rely on values from referenced tables, virtual columns, and other data outside the scope of the row, are not currently supported.

For example, below security filters are supported:

  • Constants like =TRUE and =FALSE are supported.
  • Value comparisons like [Status]=‘Pending’ are supported.
  • User settings and email checks like [Assigned To]=USEREMAIL() are supported.

Below security filters are not supported in this release:

  • References in expressions like [Order].[Assigned To]=USEREMAIL() are not supported.
  • Select, Filters and other expressions that are table scoped (ex: SELECT(Table1[Col1], TRUE) ) are not supported.
  • Only physical columns are supported. Virtual columns are not supported in the security filter.

Do I have access to this feature?

Feature is available on Free accounts only. Based on the feedback, we will gradually release this to paid accounts in the coming months.

How do I enable this feature?

Go to Settings > Performance (1-2) . If you are using the legacy app editor UI , go to Behavior > Offline.

  1. In Sync: Cloud to Data Source, turn on (3) Server Caching and (4) Quick Sync.
  2. Save your app. AppSheet editor will show a warning and toggle this feature for expressions not supported by this feature.

When can I enable this feature?

The app editor will enforce that only supported security filters are allowed. If you have a security filter that is not supported and turn on “Quick sync”, the feature will be automatically turned off after you save your app and you’ll get a warning message.

When should I disable this feature?

App creators should also consider at least the following factors to decide if they want to use this feature in their apps:

  • The individual data updates will be cached on AppSheet servers. If you have strict data residency requirements, you may not want to use this feature.
  • You should not use this feature if your data sources compute values automatically (for example, if your Google Sheets data source uses formulas) or if your app has virtual columns that require a complete sync to be computed properly. This is to make sure that your users are seeing accurate data and have a consistent user experience.
  • If people change data directly in the data source (for example, editing directly in Google Sheets) or through another non-AppSheet system, the app will not reflect this updated data until the next sync.

Why is it not working for my users?

First, see the restrictions mentioned above (and check that your security filters are compatible).
In addition, users will only see changes made by other users that are using an app with the same version. This means that if you are updating your app (and the version is changed), your app users may not see updated data until their next full sync. This functionality ideally needs both Sync on start and Automatic sync features to be turned ON as well.

More technical information is shared further below too.

Where is the documentation?

See the Quick sync setting described in Offline and Sync: The Essentials.

Who should I reach out to if I see issues or want to provide feedback?

Add your feedback or report issues directly on this announcement thread.

How does the Security filters in Quick sync feature work?

Quick sync works by “broadcasting” updates directly to the open apps when the changes are done. This allows apps to show the latest data in between full syncs. An overview of the broadcast system is shown in the diagram below.

To support security filters, we evaluate the expressions on the changed rows only.

  • AppSheet editor checks the expression to make sure we can correctly evaluate the expression with just the information in the data change.
  • Expression evaluation makes sure that we do not fetch additional data from the origin data sources. This is to avoid overwhelming origin data sources with too many read requests.

@Arthur_Rallu @preethamm

13 Likes

I take it that my security filter won’t work with Quick Sync?

IN([Tags],USERSETTINGS(“Tags”))

If it will work, I’m very excited for the paid release…

2 Likes

Is there anyway enterprise accounts can sign up for testing quick sync with security filters?

1 Like

User settings are supported and if Tags is a regular column, it should be supported. Give it a shot by making a test app as free user?

2 Likes

I will! Thanks! Yes “Tags” is an enum column of the type “text.”

1 Like

This is currently an early release version that is available for free users and can be buggy. It is currently available only to free users since we have limited support bandwidth.

2 Likes

This should be updated to reflect that some security filters are supported

[quote=“preethamm”]
In addition, users will only see changes made by other users that are using an app with the same version. This means that if you are updating your app (and the version is changed), your app users may not see updated data until their next full sync.
[/quote]##### Appsheet URL has version identifier that general u… - Google Cloud Community

3 Likes

Good catch! Updated. Thank you

2 Likes

Hi @preethamm ,

These improvements truly bring joy to me. I highly appreciate the efforts of the development team.

I have enabled the “Quick sync” feature in my application and tested it with a simple set of allowed security filters. The “Quick sync” feature works well within the same application.

However, when I use another application (with the same database), the “Quick sync” feature does not work as expected. I have to manually sync to update the data as before.

Does the “Quick sync” feature work between two applications with the same database? I would greatly appreciate clarification on this matter.

Thank you!

@preethamm

Thank you for the very nice announcement.

Unfortunately Quick Sync doesn’t seem to work in my app.

My app uses Google Calendar for each account as a data source, so I need a security filter, but it syncs very slowly.

OR((USEREMAIL()=“user001@xxx.com”),(USEREMAIL()=“administrator@xxx.com”))

We hope to see faster syncing with Google Calendar for each account in the near future.

Thanks for trying out the feature! As of now, this feature only works for the same app and same version. We will take this as a feature request for our future iterations.

4 Likes

Thanks for trying the feature!

Quick sync is more geared towards showing you the app changes as soon as possible. With this turned ON, changes will show up without the sync. This is being done so that in the longer term, users do not have to bother to sync at all.

Google Calendar slowness is usually because Calendar data api is slow. Hence, Sync is slow as well. Unfortunately, we do not have anything that would speed up sync today.

4 Likes

@preethamm thanks for released preview mode. still there is lot of gaps, for example:

  • Ref. Row
  • Virtual Column
  • SELECT Function
  • Filter Function
  • IN / CONTAINS Function

But I’m happy that within few days it will be solve.

thank you

@preethamm thank you so much, I impressed.

please go ahead. I hope that it will be big improvement.

@preethamm

Thank you for your quick and polite response.

Do updates to the data source that are triggered by the Appsheet Api cause a Quick Sync for users who have the Apps open?

Yes. API is supported and will propagate the changes.

4 Likes

@preethamm I test the quick sync in deck view with nest table and see that if I edit quantity number in child table for example from 1 to 2, it will not update immediately in deck view until I press sync button while I can see the updated quantity in form view and detail view. If I turn off quick sync, I can see the updated quantity immediately in deck view. Please check if it is a bug or the nature of quick sync function

Thanks for trying out the feature! So, this depends on how deck view is setup. Is the display showing a VC on that parent table in the deck view? This would not update till a sync happens. You can also see this behavior when you add a new child record and see the main deck view before the sync happens.

However, this feels odd. Is this happening for the same user who made the change or other user? Are you referring to change shown after the sync? If you have some time and could share some details including screenshots, ideally give support access to the app, it would help me take a look. You could DM me or contact support.

Below is my screenshot

I creat an order and order details and show it in deck view

After that I change the quantity crom 1 to 2

After sync, I back to deck view, the quantity is not updated while the total value( VC column)in farther table updated from 40000 to 80000

Then I go to the details view, you can see that the quantity is updated to 2

After that I back to the details view but the quantity is still not updated