I know that Power Apps validations run on the client-side only. and when we write a business logic (formula) inside power apps it will run on the client side and can be bypassed by interacting directly with SharePoint lists API. for example, i have this simple business scenario: -

  1. Class SharePoint list with these fields; ID, Title, Start Time, End Time, Days-Of-Week, Lookup column to the Teacher list

  2. Teacher SharePoint list with these fields; ID, Title

When I want to assign a teacher to a class, I need to check if the teacher does not have a class on the same time and same days of week. I can do this inside Power Apps formulas >> but users can bypass this validation when interacting with SharePoint list directly since they have contribute permission on the related SharePoint lists and power apps interacts with SharePoint using the user's identity.

so is there an architecture for SharePoint & Power Apps i can use to lock the SharePoint lists by a service account, and apply server-side business logic to the application, to secure the validations and business logic?


1 Answer 1


You would need to incorporate either a Power Automate flow, your own API or allow the user to enter messages in a queue which could then be actioned by server side functionality. Power Apps are client side in nature, therefore the app runs in the context of the current user.

Update: You can use your own API by creating a custom connector.

To use Azure queue directly from the app, you can use the Azure Queues connector. To utilise the Azure Queues connector, the user would need to have the appropriate permissions on the Azure storage account.

  • thanks for the reply, could you please add more details how i can incorporate my own API or use queues ? Aug 11, 2023 at 13:48
  • 1
    have updated the answer Aug 11, 2023 at 13:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.