These are arbitrary key/value pairs that are typically used to define environment-specific details such as host names and credentials. After you define a policy configuration key, you can reference it by name in the PingAuthorize Policy Editor Trust Framework. By using a reference, you do not need to hard-code the values in the Trust Framework.


Consider an organization that has two development environments, US-East and US-West. The organization’s policies call out to a PingDirectory Consent API policy information provider (PIP), and the Consent API’s host name differs depending on the development environment being used. If the Consent API host name was hard-coded in the Trust Framework, then a different Trust Framework would need to be used for each development environment. Instead, you can declare the host name as a policy configuration key in the Policy Editor’s configuration.

To set up this policy configuration key, complete the following steps.
  1. Make a copy of the default options file.
    $ cp config/options.yml my-options.yml
  2. Edit the new options file to define a policy configuration key in the core section called ConsentHostname.
    # Other options omitted for brevity...
  3. Stop the Policy Editor.
    $ bin/stop-server
  4. Run setup using the --optionsFile argument. Customize all other options as appropriate for your needs.
    $ bin/setup demo \
      --adminUsername admin \
      --generateSelfSignedCertificate \
      --decisionPointSharedSecret pingauthorize \
      --hostname <pap-hostname> \
      --port <pap-port> \
      --adminPort <admin-port> \
      --licenseKeyFile <path-to-license> \
      --optionsFile my-options.yml
  5. Start the Policy Editor.
    $ bin/start-server

After you define the Consent API service in the Trust Framework, you can refer to the policy configuration key that you defined in the Policy Editor configuration. To do this, you must first create an attribute in the Trust Framework to hold the policy configuration key value. Add an attribute with the following settings.

Property Value
Name ConsentHostname
Resolver Type Configuration Key
Resolver Value ConsentHostname

Now when you create a service in the Trust Framework, you can refer to this attribute using the {{AttributeName}} notation. For example, where the URL is otherwise used, you would use the URL https://{{ConsentHostname}}/consent/v1/consents, as shown in the following image.

Screen capture illustrating a configured URL with the ConsentHostname value included.