Configuration > Configure Public Access to ThingWorx > Grant User Permissions
  
Grant User Permissions
This section provides information about how to configure public access for a ThingWorx server. It is assumed that your server has been pre-configured with a ThingWorx user named es-public-access, and that the Experience Service has been configured to use an application key associated with this user to access the ThingWorx server on behalf of public Experiences. It is also assumed that your ThingWorx server has been pre-configured with a ThingWorx organization named es-public-access-org and that the es-public-access user is a member of this organization. All servers that you have been provided with are configured this way.
ThingWorx Composer can be used to grant permissions to users and organizations. The Composer can be accessed by entering the following URL into your browser:
https://<Your experience service host>/Thingworx
* 
Replace “Your experience service host” with the host name of the server that has been provided to you.
Enabling WebSocket Connections
* 
This may have already been done for you OOTB.
The following permissions must be granted to the es-public-access user to enable public Experiences to connect to ThingWorx using web sockets. A WebSocket connection is required if any of the thing properties accessed by a public Experience have been configured to be auto-refreshed. You must grant permissions for the following:
Permission
Instructions
Visibility permission on the EntityServices resource
1. From ThingWorx Composer, click Resources under the SYSTEM section.
2. Enter EntityServices in the filter field, and click the permissions icon () in the last column.
3. Click Add Org/Org Units.
4. Select the es-public-access-org organization.
5. Click Add Entire Organization.
6. Click Done.
7. Click Save.
Run Time Service Execute permission for the GetClientApplicationKey service on the EntityServices resource
Use the following steps to grant the es-public-access user run time Service Execute permission for the GetClientApplicationKey service on the EntityServices resource.
1. From ThingWorx Composer, click Resources under the SYSTEM section.
2. Enter EntityServices in the filter field, and click the permissions icon () in the last column.
3. Click Run Time under PERMISSIONS.
4. Under Property, Service or Event Overrides, use the search box to find and add the GetClientApplicationKey.
5. Under GetClientApplicationKey, use the search box to find and add the es-public-access user. Click the green dot in the Service Execute column.
6. Click Save at the top of the page.
Visibility Instance—permissions on the SDKGateway thing template
1. From ThingWorx Composer, click Thing Templates under the MODELING section.
2. Click Advanced, and select the Show System Objects checkbox. Click Done.
3. Enter SDKGateway in the search box at the top of the Thing Templates table, and click the permissions icon () in the last column.
4. Click Visibility Instance under PERMISSIONS.
5. Click Add Org/Org Units.
6. Select the es-public-access-org organization.
7. Click Add Entire Organization.
8. Click Done.
9. Click Save.
Run time instance Service Execute permission for the SDKGateway thing template
Use the following steps to grant the es-public-access user run time instance Service Execute permission for the SDKGateway thing template.
1. From ThingWorx Composer, click Thing Templates under the MODELING section.
2. Click Advanced, and select the Show System Objects checkbox. Click Done.
3. Enter SDKGateway in the search box at the top of the ThingTemplates table, and click the permissions icon () in the last column.
4. Click Run Time Instance under PERMISSIONS.
5. Under All Properties, Events, and Services, use the search box to find and add the es-public-access user.
6. Click the green dot in the Service Execute column.
7. Click Save.
Enabling Access to Properties, Services, and Events
For a public Experience to access ThingWorx, the es-public-access user must be granted permission to the properties, services, and events that are used by that public Experience. Use the following steps to grant the es-public-access user the required permissions to properties, services, and events used any public Experiences published to the Experience Service.
* 
Repeat this process for each property, service, or event that you want to grant access to.
1. From ThingWorx Composer, in the left navigation pane, click the type of the entity whose data must be accessed by a public Experience.
2. Enter the name of the entity in the search box located at the top of the table.
* 
If the entity is a system object, you must first click Advanced, and select the Show System Objects checkbox. Click Done.
3. Click the permissions icon () in the last column of the row containing the entity.
4. Click Run Time under PERMISSIONS.
5. Under All Properties, Events, and Services, use the search box to find and add the es-public-access user.
6. Click the green dot under the appropriate permissions columns.
7. Click Save.
In addition to granting the es-public-access user permissions to Experience data, you must also grant the es-public-access-org organization visibility permission.
* 
Repeat this process for each entity that is accessed by a public Experience.
1. From ThingWorx Composer, click the type of the entity whose data must be accessed by a public Experience
2. Enter the name of the entity in the search box located at the top of the table.
* 
If the entity is a system object, click Advanced, and select the Show System Objects checkbox. Click Done.
3. Click the permissions icon () in the last column of the row containing the entity.
4. Click Visibility under PERMISSIONS.
5. Click Add Org/Org Units.
6. Select the es-public-access-org organization.
7. Click Add Entire Organization.
8. Click Done.
9. Click Save.