Skip to main content

Harness Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Harness destination.
harness_api.png

Harness

  1. Click the + icon on the Nexset that will be sent to the Harness destination, and select the Send to Destination option from the menu.

  2. Select the Harness connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Harness account, and click Next; or, create a new Harness credential for use in this flow.

  3. In Nexla, Harness destinations can be created using pre-built endpoint templates, which expedite destination setup for common Harness write endpoints. Each template is designed specifically for the corresponding Harness endpoint, making data destination setup easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Harness destinations can also be configured manually, allowing you to send data to Harness endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Harness endpoints. Each template is designed specifically for the corresponding Harness endpoint, making destination setup easy and efficient.

Endpoint Settings

  • Select the endpoint to which this destination will send data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your destination for this endpoint.

    Create an Environment

    Creates a new environment within a Harness project. Use this endpoint to programmatically provision deployment environments as part of infrastructure-as-code or automated project setup workflows.

    • Sends a POST request to the Harness environments endpoint with the environment definition in the request body.
    • The request body must include the environment name, identifier, organization identifier, project identifier, and environment type (e.g., Production, PreProduction).

    Include accountIdentifier, orgIdentifier, and projectIdentifier as query parameters or in the request body to scope the new environment to the correct project.

    Create a Project

    Creates a new Harness project within an organization. Use this endpoint to automate project provisioning as part of team onboarding or infrastructure setup pipelines.

    • Sends a POST request to /ng/api/projects with the project name, identifier, organization identifier, and optional description in the request body.

    Project identifiers must be unique within the organization and can only contain letters, numbers, and underscores. Admin permissions are required to create projects.

    Trigger a Pipeline Execution

    Triggers a pipeline execution in Harness. Use this endpoint to automate CI/CD pipeline runs from external events, scheduled Nexla flows, or data-driven conditions.

    • Sends a POST request to the Harness pipeline execution endpoint with the pipeline identifier and optional runtime inputs in the request body.
    • Configure the following parameters: Identifier — the unique identifier of the pipeline to execute.

    Triggering a pipeline execution will create a real pipeline run in your Harness account. Review the pipeline identifier and any runtime inputs carefully before activating this destination. Consider testing against a non-production project first.

    Create a Pipeline (YAML Body)

    Creates a new pipeline by submitting its full YAML definition to the Harness API. Use this endpoint to automate pipeline creation as part of infrastructure-as-code or template-driven DevOps workflows.

    • Sends a POST request to the Harness pipelines endpoint with the complete pipeline YAML definition in the request body.
    • The YAML must be valid Harness pipeline syntax and must include an identifier field that is unique within the project.

    Include accountIdentifier, orgIdentifier, and projectIdentifier as query parameters to associate the new pipeline with the correct project. Pipeline YAML can be exported from the Harness UI for use as a template.

    Create a Service

    Creates a new service definition within a Harness project. Use this endpoint to programmatically register services as part of software catalog population or automated project setup workflows.

    • Sends a POST request to the Harness services endpoint with the service name, identifier, and optional YAML definition in the request body.
    • Include accountIdentifier, orgIdentifier, and projectIdentifier to scope the service to the correct project.

    Service identifiers must be unique within the project. Admin or project-level write permissions are required to create services.

    Create a Secret

    Creates a new secret (text, file, or SSH key) in the specified scope (account, org, or project). Use this endpoint to automate secret provisioning as part of environment setup or credential rotation workflows.

    • Sends a POST request to the Harness secrets endpoint with the secret type, name, identifier, and value in the request body.
    • Supported secret types include SecretText, SecretFile, and SSHKey.

    Secret values sent via this endpoint are encrypted at rest by Harness using the configured secret manager. Ensure that sensitive values are not logged or exposed in Nexla flow configurations.

    Create Role Assignment

    Creates a role assignment within the specified scope, granting a principal (user, user group, or service account) a specific role. Use this endpoint to automate access provisioning as part of user onboarding or permission management workflows.

    • Sends a POST request to /authz/api/roleassignments with the role identifier, principal type, principal identifier, and resource group in the request body.

    Admin-level permissions are required to create role assignments. Scope the assignment to account, org, or project level by including the appropriate identifier parameters.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can send a sample payload to the Harness API to ensure that the destination is set up correctly.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Harness destinations can be manually configured to send data to any valid Harness REST API endpoint. This allows you to trigger pipeline executions, create or update feature flags, provision connectors, update projects, or push data to any writable Harness resource. You can also configure Nexla to automatically send the response received from the Harness API after each call to a new Nexla webhook data source.

First, select the API method that will be used for calls to the Harness API from the Method pulldown menu.

Common Harness write operations and their corresponding HTTP methods include:

  • POST: For creating new resources or triggering pipeline executions
  • PUT: For fully replacing existing resource configurations
  • PATCH: For partially updating existing resources
  • DELETE: For removing resources such as connectors or feature flags

Data Format

  1. Select the format in which the Nexset data will be sent to the Harness API from the Content Format pulldown menu. Nexla will automatically convert the data to the selected format for each API call. The Harness REST API accepts and returns data in JSON format, so select JSON as the content format.

API Endpoint URL

  1. Enter the URL of the Harness API endpoint to which you want to send the Nexset data in the URL field. Include all required query parameters, such as accountIdentifier, in the URL.

    Common Harness write endpoints include:

    • Trigger a pipeline execution: https://app.harness.io/ng/api/pipeline/execute/{'{pipelineIdentifier}'}?accountIdentifier={'{accountId}'}&orgIdentifier={'{orgId}'}&projectIdentifier={'{projectId}'}
    • Create a feature flag: https://app.harness.io/cf/admin/features?accountIdentifier={'{accountId}'}&orgIdentifier={'{orgId}'}&projectIdentifier={'{projectId}'}
    • Update a connector: https://app.harness.io/ng/api/connectors?accountIdentifier={'{accountId}'}
    • Create a project: https://app.harness.io/ng/api/projects?accountIdentifier={'{accountId}'}&orgIdentifier={'{orgId}'}

    Replace {'{accountId}'}, {'{orgId}'}, {'{projectId}'}, and {'{pipelineIdentifier}'} with your Harness Account Identifier, Organization Identifier, Project Identifier, and Pipeline Identifier respectively.

The Harness REST API base URL is https://app.harness.io/ng/api. All requests must be made over HTTPS. For complete documentation on available endpoints and required request body schemas, see the Harness API Reference.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers and corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the x-api-key authentication header, as it is handled automatically by Nexla using the API key stored in your Harness credential. The Content-Type: application/json header is also managed automatically.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Harness destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings — click on an algorithm listed below to view instructions for configuring these settings.

Property Inside JSON Object

  1. Enter the name of the JSON property that should contain the batched records in the Property Name field. For example, when sending multiple records to a Harness endpoint that accepts a list, you might use a property name matching the expected request body field.
  2. If any additional properties should be included in the request body alongside the batched records, enter those properties in the Other Props field in JSON format.

Code

  1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Response Webhook

Optional

Nexla can automatically send the response received from the Harness API after each call to a new Nexla webhook data source. This option allows you to track the status of each API call and capture any information returned by Harness — for example, the execution ID and status of a triggered pipeline, or the identifier of a newly created resource.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Harness API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.

  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing

After all endpoint settings have been configured, Nexla can send a test payload to the Harness API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Harness API using the current settings.

Test Payload Caution

Sending a test payload to write endpoints (such as triggering a pipeline execution) will create real resources or trigger real actions in your Harness account. Review the sample payload carefully before sending, and consider using a non-production project for initial testing.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Harness endpoint, open the destination resource menu and select Activate.

    The Nexset data will not be sent to the Harness API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.