Log in to your harness - The Modern Software Delivery Platform® account to give feedback

Feature Requests

Anonymous

Feature Requests for Harness. Select 'Category' based on the module you are requesting the feature for.
Input Control for custom attributes in rule builder
Summary In Harness FME, custom attributes defined on a traffic type carry a declared data type (String, Set, Number, Semver, Boolean, Date). However, the rule builder UI in the flag definition page lets users pick any matcher regardless of the attribute's declared type. When a runtime mismatch occurs — e.g. an attribute declared as String is referenced by a matcher that expects Set — the evaluator silently returns no-match with no error, log line, or visual indicator. The rule is effectively dead, but appears correctly configured in the UI. Concrete example Custom attribute client_name is declared as String on traffic type account. A rule was created via the UI: client_name is equal acme-corp → serve treatment A The UI label "is equal" maps to backend matcher type EQUAL_SET, which expects the attribute value to be a Set. SDK sends {"client_name": "acme-corp"} (a String, per the attribute declaration). Result: rule silently evaluates to false. The targeted treatment never serves. Default rule fires instead. Request When a user picks an attribute in the rule builder, the UI should: Filter matchers to those compatible with the attribute's declared type. "is equal" (set semantics) should not appear as an option for a String attribute — only String-compatible matchers (is in list, matches, starts with, contains, etc.). Or, at minimum, validate at save time and block / warn when the chosen matcher's expected attribute type doesn't match the declared attribute type, with a clear error message naming the mismatch. Why this matters The current UX is a silent-failure foot-gun: the most natural-sounding option ("is equal") is the wrong one for the most common attribute type (String). The labels "is equal" and "is in list" appear interchangeable to a user who isn't deeply familiar with Split's matcher taxonomy. The actual difference (set semantics vs string semantics) isn't surfaced anywhere in the UI. Because attribute types are already declared on the traffic type, the system has all the info it needs to prevent this — it just doesn't use it. Severity / impact The blast radius can be large and silent: the targeted treatment never actually serves. Medium-to-high. Easy to introduce, hard to detect (looks right in the UI, no error anywhere)
1
·
Feature Flags
Runtime-Generated Short-Lived Harness API Tokens for CI Pipelines
Summary Harness currently lacks a native mechanism to generate ephemeral, short-lived API tokens at pipeline runtime — comparable to GitHub Actions' GITHUB_TOKEN or the OIDC-based tokens available for GCP and Azure in Harness CI. Reviewed Documentation & Why It Is Insufficient API Keys & Token Expiry https://developer.harness.io/docs/platform/automation/api/add-and-manage-api-keys https://developer.harness.io/docs/platform/automation/api/add-and-manage-api-keys#token-expiry Harness allows setting an expiration date (30, 90, 180 days or custom) when creating a token. However, this is a statically configured expiry, not a dynamically generated short-lived token. The minimum API key duration is 30 days. This does not meet the requirement for tokens that are valid only for the duration of a single pipeline run. Delegate Token Revocation Delegate tokens can be created with a revokeAfter epoch timestamp via API. However, this mechanism is scoped to delegate authentication only and is not applicable to general CI pipeline use cases. IDP Create/Delete Secret Pattern https://developer.harness.io/docs/internal-developer-portal/tutorials/using-secret-as-an-input/ The IDP workflow pattern allows creating a Harness secret before a pipeline run and deleting it afterward using harness:create-secret and harness:delete-secret actions. This is a workaround, not a native solution — and explicitly noted in the documentation that if a pipeline step fails, the secret is not automatically cleaned up, requiring manual deletion. Token Rotation [Rotate tokens] Token rotation is a manual process and does not provide runtime-scoped ephemeral tokens. What Is Needed A native Harness CI mechanism to generate a short-lived, pipeline-scoped token at runtime that: Is automatically invalidated when the pipeline run ends. Requires no manual cleanup. Can be used to authenticate against the Harness API within the same pipeline run. Is comparable to GitHub Actions' GITHUB_TOKEN or the existing OIDC plugins for GCP https://developer.harness.io/docs/continuous-integration/secure-ci/gcp-oidc-token-plugin/ and Azure https://developer.harness.io/docs/continuous-integration/secure-ci/azure-oidc-token-plugin/
0
·
Continuous Integration
Load More