---
title: Uploading files to data plane nodes
description: After you upload the ping-auth plugin's schema to Konnect, upload the following files for the plugin to each Kong Konnect data plane node:
component: pingauthorize
version: 10.1
page_id: pingauthorize:pingauthorize_integrations:paz_uploading_files_to_data_plane_nodes
canonical_url: https://docs.pingidentity.com/pingauthorize/10.1/pingauthorize_integrations/paz_uploading_files_to_data_plane_nodes.html
revdate: April 4, 2024
section_ids:
  about-this-task: About this task
  steps: Steps
  example: Example:
---

# Uploading files to data plane nodes

## About this task

After you upload the `ping-auth` plugin's schema to Konnect, upload the following files for the plugin to each Kong Konnect data plane node:

* `access.lua`

* `handler.lua`

* `Network_handle.lua`

* `response.lua`

* `schema.lua`

|   |                                                                                                |
| - | ---------------------------------------------------------------------------------------------- |
|   | If a data plane node doesn't have these files, the `ping-auth` plugin cannot run on that node. |

Follow the Kong Gateway plugin deployment instructions to set up the plugin on each node. Instructions can vary depending on the platform. If you're running Kong Gateway on Docker, the following instructions are provided as an example.

Install the `ping-auth` plugin inside the Kong Konnect Docker container for each node. Copy or mount the plugin's source code into the container.

## Steps

1. In your control plane, go to **Data Plane Nodes**, then click **New Data Plane Node**.

2. Select a **Platform**, for example **Linux (Docker)**, and **Generate a certificate**.

   ![Screen capture of the "Self-managed Hybrid Data Plane Node" screen](_images/mhy1702679880472.png)

3. Copy the generated Docker run command and add the following snippet to it.

   Substitute your own source and target paths.

   * The *\<source\_path>* is the location where you extracted the `ping-auth` plugin files. This is the parent folder that contains the `ping-auth` folder.

   * The *\<target\_path>* is where you keep custom Kong plugins. This is the path to the `ping-auth` plugin.

     ```
     -v "/<source_path>:/ping-auth:/<target_path>/ping-auth" \
     -e "KONG_PLUGINS=bundled,ping-auth" \
     -e "KONG_LUA_PACKAGE_PATH=/<target_path>/?.lua;;" \
     ```

4. To start a data plane node with the `ping-auth` plugin loaded, run the command.

   ### Example:

   For example, the command will look something like this, including the three snippet lines from the previous step. In this example, `plugins/kong` represents the *\<source\_path>* and `/usr/local/share/lua/5.1/kong/plugins` represents the *\<target\_path>*.

   ```shell
   docker run -d \
   -v "/plugins/kong/ping-auth:/usr/local/share/lua/5.1/kong/plugins/ping-auth" \
   -e "KONG_PLUGINS=bundled,ping-auth" \
   -e "KONG_LUA_PACKAGE_PATH=/usr/local/share/lua/5.1/kong/plugins/?.lua;;" \
   -e "KONG_ROLE=data_plane" \
   -e "KONG_DATABASE=off" \
   -e "KONG_VITALS=off" \
   -e "KONG_NGINX_WORKER_PROCESSES=1" \
   -e "KONG_CLUSTER_MTLS=pki" \
   -e "KONG_CLUSTER_CONTROL_PLANE=<example>.cp0.konghq.com:443" \
   -e "KONG_CLUSTER_SERVER_NAME=<example>.cp0.konghq.com" \
   -e "KONG_CLUSTER_TELEMETRY_ENDPOINT=<example>.tp0.konghq.com:443" \
   -e "KONG_CLUSTER_TELEMETRY_SERVER_NAME=<example>.tp0.konghq.com" \
   -e "KONG_CLUSTER_CERT=<cert>" \
   -e "KONG_CLUSTER_CERT_KEY=<key>" \
   -e "KONG_LUA_SSL_TRUSTED_CERTIFICATE=system" \
   -e "KONG_KONNECT_MODE=on" \
   -p 8000:8000 \
   -p 8443:8443 \
   kong/kong-gateway:<version>
   ```

5. To confirm the Docker deployment, run the following command:

   ```
   "docker logs [container id]"
   ```

   ![Screen capture of the "Create a Data Plane Node" confirming deployment of the configured Data Plane Node](_images/xew1702680032882.png)
