PingGateway 2024.9

Start with Studio

PingGateway Studio is a user interface to help you build and deploy your PingGateway configuration. There are two ways to create routes in Studio:

  • With the structured editor (deprecated) to build simple routes by using predefined menus and templates. The structured editor presents valid options and default values as you add filters, decorators, and other objects to your configuration.

  • With the FreeForm Designer to design complex, multi-branched routes. Drag handlers and filters from a side bar onto the canvas to begin designing the route. The FreeForm Designer helps you to visualize the chain, and track the path of requests, responses, and contexts.

After installation, PingGateway is by default in production mode. The /routes endpoint is not exposed or accessible, and Studio is effectively disabled. To access Studio, switch to development mode. For example, add the following configuration to admin.json, and restart PingGateway:

{
  "mode": "DEVELOPMENT",
  "connectors": [
    { "port" : 8080 }
  ]
}

For additional details, refer to Operating modes.

If you provide a custom config.json, include a main router named _router. If a custom config.json is not provided, PingGateway includes this router by default.

When PingGateway is installed and running in development mode, as described in Quick install, access Studio on http://ig.example.com:8080/openig/studio. The Routes screen is displayed:

The [.label]#Routes# screen is displayed in Studio.

During PingGateway upgrade, routes that were previously created in Studio are automatically transferred to the new version of PingGateway. Where possible, PingGateway replaces deprecated settings with the newer evolved setting. If PingGateway needs additional information to upgrade the route, the route status becomes Compatibility update required. Select the route and provide the requested information.

SecretsProviders can’t be configured in Studio. Documentation examples generated with Studio might refer to SecretsProviders that must be configured separately in config.json.