The catalog service provides an OpenAPI-formatted description of all DataObjectHandler (DOH) services registered for an ABL application on the WEB transport. It enables developers and API tooling to discover available services, their endpoints, and parameter schemas from a single request.

The catalog service uses the OpenEdge.Web.CatalogWebHandler class, which queries the internal ServiceRegistry to return an OpenAPI Specification v3.1 document.

About the .oeds package

The catalog web service is distributed as an .oeds (OpenEdge Data Service) file located at DLC/servers/pasoe/extras/catalogWebService.oeds. This package contains the handler configuration and class references needed to deploy the service to a PAS for OpenEdge instance.

Deploying the catalog service

Deploy the catalog service to an ABL web application using the tcman deployablsvc command:

cd CATALINA_BASE

bin/tcman deployablsvc -oeds DLC/servers/pasoe/extras/catalogWebService.oeds -webapp webapp-name -ablapp ablapp-name
Note: The tcman deployablsvc command is a one-way deployment action. There is no corresponding undeploy command. To remove the catalog service, manually delete the deployed handler files and restart the instance.
Note: If you are running in a PROENV shell, you can use the pasman command:
pasman -i instance-name deployablsvc -oeds DLC/servers/pasoe/extras/catalogWebService.oeds -webapp webapp-name -ablapp ablapp-name

After deployment, restart the Progress Application Server (PAS) for OpenEdge instance for the service to become available.

Endpoint syntax

GET {http|https}://host:port/[webapp-name/]web/catalogService/openapi

The response is a JSON document in OpenAPI Specification v3.1 format describing all DOH services available to the current ABL application.

Service discovery

The catalog service automatically discovers service mapping files (.map and .gen files) by searching the following locations in order:

  1. CATALINA_BASE/openedge — the common location, always searched
  2. CATALINA_BASE/ablapps/ablApp/openedge — the current ABL application's location
  3. CATALINA_BASE/webapps/webapp/WEB-INF/openedge — for each web application belonging to the current ABL application that has the WEB transport enabled

The service determines the current ABL application context from the incoming request and searches all web applications associated with that ABL application. Web applications with WEB transport disabled are skipped.

Overriding discovery paths

To specify custom service map locations instead of using automatic discovery, set the SERVICEMAP_PATHS environment variable within the PAS for OpenEdge instance. Provide a semicolon-delimited list of absolute directory paths:

SERVICEMAP_PATHS=C:/app/services;C:/common/maps;D:/shared/openedge

For more information on how to set environment variables, see Configure environment variables.

When SERVICEMAP_PATHS is set, automatic path discovery is bypassed and only the specified paths are searched for service mapping files.

Manual handler configuration

Alternatively, you can register the catalog handler directly in openedge.properties without using the .oeds deployment package:

handlern=OpenEdge.Web.CatalogWebHandler : catalogService/openapi

Replace n with the next sequential handler number for the appropriate ABL application and web application section.

Securing the catalog service

You can restrict access to the catalog service in the /WEB-INF/oeablSecurity.csv file. For example, to restrict access to administrators only:

"/web/catalogService/openapi","*","hasAnyRole('ROLE_PSCAdmin')"

Place this line before any broader /web/** rule so that it takes precedence.

See also

ABL application PING service