Developer tools for Services

A Service may be tested and debugged using a dedicated Developer tool: DevTools for Services. It enables you to run a service (with input, if present), and to enable capture of incoming requests. You may also inspect the service data, and you may breakpoint service actions to execute them step-by-step.

Launch the DevTools for Services

You may launch DevTools for Services by navigating to the Service inside Appfarm Create, and clicking the blue top-right icon button:

Additional information for launching the DevTools:

  • DevTools for Services is only available when API Services are enabled. Go to Environments > ENVIRONMENT and make sure Enable API Services is enabled.

  • You may also access DevTools for Services by navigating directly to the URL https://SOLUTION_SHORTNAME-dev.appfarm.app/api/services/devtools.

  • If you want to access DevTools for Services in Test or Staging environment, simply replace the string dev from the above URL with either test or stage.

  • When accessing the DevTools from Test or Staging environment, access must be granted. Go to Permissions -> Advanced -> DevTools for Services and give access to the relevant Role to access the DevTools for Services.

Note: When using DevTools for Services, you are acting as yourself, with the full permissions of your own User in the given environment. If you want to test the Service e.g. with the same permissions as a Service Account, you should:

1) Locate the Role of the Service Account, and (temporarily) give access to DevTools for Services to that Role (Permissions -> Advanced -> DevTools for Services) 2) Create a test user, with the same Role memberships as the Service Account, and log in to DevTools for Services using that test user.

Overview

Below is an overview of DevTools for Services.

In the above screenshot, the Capture Mode (1) controls the layout of the input area (2).

There are 3 capture modes:

  • Manual: For manual execution of the service endpoint

  • Next request: Capture and log all incoming requests to this endpoint (after capture has been enabled)

  • Traced request: Add a header to the third-party request, and trace that specific request as it appears.

The panel at the bottom (3) contains 4 submenus for

The top-left button (4) features a menu. From this menu, you may navigate to the general Appfarm documentation, or to the Solution log stream.

Capture Mode

Select a Capture mode depending on how you want to debug or test a Service Endpoint.

Manual

Allows you to specify the input to the Service Endpoint (if present) and to execute it manually by clicking Execute. The execution log will appear in the Logs panel, and you may inspect the content of the Service Data. You may also add breakpoints to the Action and continue each action node step-by-step.

Note: When running DevTools for Service, you are running the Service as yourself. Please make sure your user has sufficient permissions for the operations being tested.

Next Request

This capture mode allows you to enable logging of incoming requests to the endpoint. Either from a third party or from a Service Schedule.

Clicking Enable capture will start listening. Once a request hits the endpoint, it will appear in the Logs panel. Note that you may also set breakpoints to an action to stop incoming requests, and execute the action nodes step by step (use with care, as the Service endpoint will pause).

Traced Request

This capture mode allows you to log a specific request from a third party.

Explanation of the steps with reference to the above screenshot:

  • Step 1: Enter a unique Trace ID in DevTools for Services.

  • Step 2: Communicate to the third party to add an x-trace-id header to the request, with that Trace ID as the value. In the above screenshot, you may see this setup in Postman.

  • Step 3: Enable capture in DevTools.

  • Step 4: The request is sent from the third party.

When Step 4 occurs, the execution of the service endpoint will appear in the Logs panel. Note that you may also set breakpoints to an action to stop the incoming traced requests, and execute the action nodes step by step (use with care, as the Service endpoint will pause).

Panels

The functionality within the Developer tools is grouped into four panels.

Logs

When running Service Endpoints, the execution log will appear in this section. You will see a log entry for each action node executed. Warnings and errors will also be logged.

The logs include:

  • A data view of modified data sources.

  • The payload is sent when calling external APIs.

  • Context data for an action, such as action params.

  • Error messages from failed action nodes.

  • Execution time of actions and action nodes.

Service data

The Service Data panel lists the data sources used in the service, along with the objects contained in those data sources. For data sources in Services - all object class properties are read and listed.

Actions

The Actions panel lists all actions in your service. You can also set breakpoints at the action node level to step into the action execution.

Select an action to display the action nodes contained inside. Toggle a breakpoint by clicking on an action node.

All breakpoints are displayed in a list to the right. You can activate/deactivate a breakpoint by clicking the corresponding switch in this list. This is useful if you want to retain the breakpoint for later, but deactivate it temporarily.

When an action is paused due to a breakpoint, you can choose to resume action execution, step to the next action node, or abort the action execution, by using the buttons in the toolbar.

Service Validation

Service Validation displays any validation warnings and errors for the service. Note that messages in this section may arise from issues out of an Appfarm Create developer's control. Please contact Appfarm Support if you suspect such an issue.

Solution Log Stream

Solution Log Stream allows you to inspect everything that is executed for all Services (or a selection). In addition to filtering the log stream on a set of Services and Endpoints, you may also filter the log events on severity (Info, Notice or Error).

Last updated