Cloning private app and using it publicly, not being able to access data with row owners even if field value is blank, workaround needed

Dear Glide community,

I have an app where our customers calculate offers for their customers. This is (among other tables) done in the “request” table which contains a lot of formulas which calculate or pull data from other tables. It would be a lot of work to rebuild it manually plus the potential of errors while doing so.
Therefore I cloned the app and kept the old data reference (by not keeping it, the new table only has data fields and no formulas), thinking I can now use the functions of the “request” table without sharing the data publicly, since the table has row owners. Further thinking that a user of the public app can fill data and leave the row owner field blank within his session and still be able to temporarily see/use his data.
Since the table has row owners this plan didn’t work, which I understand now and I’m in need of an idea for a workaround to have either another functional copy of the table that I can access in the public app or any idea how to make this data available to a user without him logging in.

Thank you so much in advance.

Best
Sascha Camilli

My best suggestion is to duplicate the app and be sure to select the copy sheet option. This will make a copy of the tables, but retain any computed columns. Then delete any previous data from your private users in that duplicate app. You will need to recreate many of the basic columns in your Request table as user specific columns and change your computed columns, components, and actions to use the new user specific columns (create the new columns, use Find Uses for the old columns, make the changes, then delete the old columns). This is because you will have to rely on user specific columns instead of row owners to keep user data separate. Do not apply Row Owners because it will not be useful in this case. You should also only need one row in the Reports and your users will just update that same row over and over. Since users will not be signed in, it will not save any of the data permanently.

2 Likes

If we have a public app & within this app a form that fills into a table which we won’t to secure by row owners. Does this row owner actually work securely in the public app?

Does the app actually download the table to the user device if the only use of this table is within an add row action?

If row owners are applied to a table, it will secure data in that table no matter what.

Always assume that any table used in any way by the app will have the contents of that table downloaded to the user’s device.

Regardless of how the app uses the table, if row owners are applied, then only rows owned by the signed in user will be downloaded.

Thank you Jeff
Yes i just tested it on the live app (which I wanted to avoid)
Row owners do apply even if the app is public and users cannot see the table data.

It’s the builder what is confusing me, if I switch to Anyone view, the table is still visible in the builder.

All rows will always be visible in the Data Editor, regardless of any row owner settings or which user you are viewing as. But any unowned rows will be greyed out.

Yes i’m aware of that. What i meant by visible was that they were not greyed out.

Sometimes it can be a bit flakey when switching users. Does it sort itself out if you reload?

nope it only worked when i opened the app outside the builder.

That sounds like a bug. Might be worth reaching out to Glide Support.

1 Like