Feature Request: Support Parameterized Pipeline URLs in Harness IDP Workflows
F
Fairy tale Canidae
We would like Harness IDP workflows to support parameterization of pipeline URLs using runtime variables or platform context, rather than requiring environment-specific values to be hardcoded.
Currently, pipeline URLs embedded within workflows contain values that vary across environments, making workflows less portable and increasing maintenance effort.
Problem Statement
Today, when referencing a Harness pipeline from an IDP workflow, the URL must be fully specified with environment-specific information such as:
Harness Host URL
Account ID
Organization ID
Project ID
Example:
Where:
Harness Host : https://citizensbankdev.harness.io
Account ID : N2EzMWI4YjQtNDU4OS00Zj
Org ID : cfg_sandbox_dev
Project ID : cfgIDPproject
Log In
F
Fairy tale Canidae
Desired Platform Variables
We would like access to platform-level context values such as:
Harness Host URL
Account ID
Organization ID
Project ID
Current Environment Context
Example:
{{ harness.host }}
{{ harness.accountId }}
{{ harness.orgId }}
{{ harness.projectId }}
Expected Behavior
Workflow authors should be able to build URLs dynamically without hardcoding environment-specific values.
Example:
url: "{{ harness.host }}/ng/account/{{ harness.accountId }}/module/idp-admin/orgs/{{ harness.orgId }}/projects/{{ harness.projectId }}/pipelines/{{ parameters.pipelineName }}"
At runtime, Harness should resolve the values based on the current execution context.
Benefits
Improved Portability
Single workflow definitions can be reused across multiple environments.
Reduced Maintenance
Changes to account, organization, or project information do not require workflow updates.
Better Reusability
Teams can maintain common workflow templates and deploy them across environments without modification.
Simplified Migration
Workflows can move between development, test, and production environments more easily.
Better User Experience
Workflow authors no longer need to discover and hardcode environment-specific Harness identifiers.
Use Case
Citizens Bank is building reusable IDP workflows that launch Harness pipelines. To support multiple environments and reduce maintenance overhead, we need the ability to dynamically resolve platform-specific values such as:
Host URL
Account ID
Organization ID
Project ID
when generating pipeline URLs.
Without this capability, each workflow must contain hardcoded environment-specific URLs, making template reuse and environment promotion more difficult.
Acceptance Criteria
Harness provides runtime-accessible platform context variables.
Pipeline URLs can reference Host, Account ID, Org ID, and Project ID dynamically.
Workflows remain portable across environments without URL modifications.
Variable interpolation occurs automatically at runtime.
Backward compatibility is maintained for existing hardcoded URLs.
Documentation is provided describing available runtime context variables and usage examples.
Business Value: Enable environment-agnostic, reusable IDP workflows and reduce operational overhead caused by hardcoded Harness platform identifiers.
F
Fairy tale Canidae
Show more lines
These values must currently be hardcoded within the workflow configuration.
Current Challenges
Environment Portability
The same workflow cannot be easily promoted across environments (Dev, QA, UAT, Production) without updating URLs.
Increased Maintenance
If any of the following change:
Harness host
Account structure
Organization
Project
multiple workflow definitions must be modified and redeployed.
Reduced Reusability
Organizations maintaining common workflow templates must create environment-specific versions instead of a single reusable workflow.
Governance Challenges
Hardcoded platform identifiers increase configuration drift and make workflow maintenance more complex across multiple environments.
Requested Enhancement
Provide support for runtime variables, system variables, or platform context variables that can be used when constructing pipeline URLs.
Examples:
pipelineUrl: "{{ harness.host }}/ng/account/{{ harness.accountId }}/module/idp-admin/orgs/{{ harness.orgId }}/projects/{{ harness.projectId }}/pipelines/createrepo"
or
pipelineUrl: "${HARNESS_HOST}/ng/account/${ACCOUNT_ID}/module/idp-admin/orgs/${ORG_ID}/projects/${PROJECT_ID}/pipelines/createrepo"
or any equivalent Harness-supported syntax.