Welcome back to Getting Started with PowerApp Portals & Dataverse. In the prior post, Part 1: Setting up the Environment and Database, we setup a new PowerApp Environment and Dataverse database and configured the database table(s), adding a Form and List to the table.
For this part we will be creating the PowerApp Portal, configuring a new Web Role, setting up Table Permissions and starting to build out our web page to host the Form and View created in Part 1.
Let's get started.
Part 2: Create a new Portal Application
Starting with https://make.powerapps.com, create a new Portal from blank.
Name and Address are required. Address must be unique across all PowerApp Portals as it is a subdomain to powerappportals.com. It can be changed later and can be configured as a custom domain.
Once your portal has been created, you will see two new Apps. One is a Portal app and the other is a Model-driven application (Portal Management).
The Portal Management app lets you do advanced configuration actions on your portal.
Configuring a Web Role to protect pages in the portal and to control table access in Dataverse.
Open Portal Management from the Apps list.
Scroll down the lengthy menu on the left until you get to the Security Section. Open the menu item “Web Roles”.
By default, you should have 3 roles defined (Administrators, Anonymous Users and Authenticated Users).
For this step we will create a new web role using the “+ New” menu item, as seen below.
Provide a Name for the web role and select the Website (your new portal) from the Website dropdown. Click Save when complete.
Create Table Permissions to Grant your new web role access to Dataverse Table(s).
Back on the main Portal Management Menu, under the Security section, open the menu item “Table Permissions”.
For this step we will create a new Table Permission for the main table that is bound to the view and form. Open the “+ New” menu item as seen below.
For this Permission we are going to complete the Name, Table Name (select from dropdown), Website (select from dropdown), Access Type (Global).
We will switch this access type in Part 3 of the blog series when we tie record creation to a contact and filter records based on the logged in contact.
Choose Privileges Read and Write to grant access to read and write records to the chosen table.
Note: Lower sections are disabled until permission is created.
Click Save when complete.
The form will refresh, and the lower sections will become active.
We can now assign the Web Role that we created earlier to this Table Permission. Open the Web Role Menu from the right side ellipsis menu, and choose “Add Existing Web Role”.
A blade will open on the right. Choose the role if shown or search for it or click "All Records" to find the role. Once chosen, click Add.
Create/Edit Portal Page to capture and show Dataverse data
Open the Apps menu to get to the Apps list.
To edit your Portal, either hover over the app and open the ellipsis menu and choose Edit. Or click the first column in front of the icon of the app you want to open, to select the row, and click “Edit” from the top menu.
How to navigate your site:
By default, my site was created with Subpage 1 and Subpage 2. I choose to repurpose Subpage 2 for my testing. You can do the same or choose to create a new page using the “+ New page” menu from the top menu.
Pages can be moved up, down or promoted from being a subpage by hovering over the page name and using the ellipsis menu.
Pages are made up of Sections, Columns and Portal Components. All can be accessed from the “+” menu on the left. You can also remove sections by selecting them on the page and using the “Delete” menu at the top of the page.
Either create a new page or open the page you want to edit.
At this point, you can give your page a name or rename the page.
Set Page Permissions so that only those in the web role have access to the page. This is all done from the Page properties on the right side of the screen. Make sure to uncheck “Page available to everyone”.
Add component to your page.
For this step we want to add both the Form and the List/View (if you haven't noticed I used the term view and list interchangeably) to the page. These could be done on separate pages, however for this example we will just add them both to the same page.
Insert Form first.
Note: If you make any changes in Dataverse, after you create your form, you may need to click the “Sync configuration” button in the upper right corner of the page to have those changes reflected on your page controls. (Note: This will come into play on Part 3 when we add the createdbycontact column and relationship or if you make changes to a List)
At this point of Part 2, you should now have a new Portal App Portal created with at least one page containing both the Form and List. You should also have a Web Role setup with permissions to access the Dataverse tables and your new page should be restricting access to that page.
You can browse your site at this point using the Browse Website button in the upper right corner of the website page as seen in the screenshot above. Because your page is restricting access to signed in users you will not see this page yet, unless you remove the page permission.
For Part 3, we will walk through registering for your Portal, where that registration gets created, adding a “Created by Contact” column to your main table along with a relationship to the Contact table, configuring the Created by Contact column to automatically populate based on the logged in contact, and assigning Contacts to the Web Role so that they can see the page.
Lots more to come so stay tuned for Part 3
If you have questions or any topics you want to see in the future, please use the comments area below. Thank you.