Self-Hosting ArcGIS Content using ArcServer and Postgres#


Problem Description

Self-hosting ArcGIS data and geoprocesses enables the developer to customize project infrastructure (hardware and software) to meet project needs. It also enables the developer to customize security settings to ensure proper access when administrative rights are needed for some users, but not all of them.

To explore this concept, a remote server was established on NCSU VCL infrastructure to host an ArcGIS Server instance connected to a Postgres backend database.


Analysis

ArcServer sample map service
Figure 1. ArcGIS Server sample map service
ArcServer rest services page
Figure 2. Sample map service in a web map

A geodatabase was created using Postgres and managed via pgAdmin and ArcGIS Pro. ArcGIS Server was used to serve layers publicly from the database - Figure 3 shows the established geodatabse is registered as a data store for ArcGIS Server.

Figure 1 shows the SampleWorldCities map service that is published to preview the servers functionality.

Figure 2 shows the SampleWorldCities map service being visualized in an ArcGIS Online web map.

ArcServer data page
Figure 3. ArcGIS server data stores page
ArcServer roles page
Figure 4. ArcGIS server configured roles


The geodatabase includes different users types, such as admins and general users.

Admins can add and remove content from the server, while general users are only able to access the served content.

Figure 4 shows the user roles that were configured on this project's ArcGIS Server instance.


Results

Arcserver data catalog
Figure 6. Catalog of hosted data

Figure 5 shows the resulting ArcGIS Online (AGOL) web map that uses the various layers hosted on the ArcServer instance. The buildings layer pop-up window is shown to highlight that the metadata is served as imported.

Web map resulting from ArcServer content
Figure 5. Web map serving the hosted data

Figure 6 shows an ArcGIS catalog displaying the feature classes, tables, and views that are hosted via ArcServer and displayed via web map services. These items were added to the database using my personal user account/role, crcowell, which can be seen in the name of each item.


Reflection

This hosting scenario showed the developer how to successfully establish infrastructure to host spatial data using personal infrastructure. User access and security settings were used to provide an overview of the different roles that can be established to restrict certain data.

A good way to build upon this scenario would be to create certain views and datasets that are only available to specific users. Pairing this sort of setup with a mobile use case, using something like ArcGIS Field Maps, would provide the necessary infrastructure for collecting and serving field data in an efficient manner.