Feature ideas

We take your ideas seriously! Read more on our prioritization process in our blog https://productmanagement.port.io/posts/managing-feature-ideas
Support relation-based filter rules in the port_search Terraform data source
The port_search Terraform data source currently calls POST /v1/entities/search, which requires a property field in every rule. This means relation-based filter rules are not supported, and the following query fails with "rules/0" must have required property 'property': data "port_search" "pd_entities" { query = jsonencode({ "combinator" : "and", "rules" : [ { "relation" : "pagerduty_escalation", "operator" : "isNotEmpty" } ] }) } The blueprint-scoped endpoint POST /v1/blueprints/{blueprint}/entities/search does support relation-based rules (e.g. filtering by isNotEmpty on a relation field), but the port_search data source does not expose this endpoint. Requested change: Add support for relation-based filter rules in the port_search data source, either by: Exposing the blueprint-scoped search endpoint (/v1/blueprints/{blueprint}/entities/search) as an option in the data source, or Updating the global search endpoint to accept relation rules without requiring a property field. Use case: We need to find all entities across blueprints where a specific relation (e.g. pagerduty_escalation) is set (i.e. isNotEmpty). Today this requires a multi-step REST API workaround outside of the Terraform provider, which undermines the goal of managing Port infrastructure as code. Current workaround: Query /v1/blueprints to discover all blueprints that define the target relation. For each blueprint, query /v1/blueprints/{blueprint}/entities/search with a relation rule. This is brittle and forces us to bypass the Terraform provider entirely.
0
·
Data model
Allow mirror properties to be defined using a relation path
🔎 Context: Our architecture model follows a natural hierarchy of relations, for example: • Domain <-Business Service -> System <-Component <- App Version <-Deployment (EKS Workload / ArgoCD Application / ECS Task Definition) • Component <- Quality Analysis (SonarQube Project) On the Component level in reports and widgets we need to see information coming from multiple related entities. • Domain Architect from Domain • Domain, Business Owner from Business Service • Deployment metrics from EKS / ArgoCD / ECS (deployment type, health rating, environments, AWS accounts, regions). • Quality metrics from SonarQube Project (size rating, coverage, complexity, link to SonarQube) On the Deployment / Quality Analysis level we also need to see properties coming from the Component, for example: • Status • SRE / DevOps owner ⚠️ Problem Currently this is difficult to achieve because: 1. Reports and widgets can only be based on a single entity, which makes it hard to build cross-entity views. 2. Mirror properties cannot be used flexibly, because: • mirror properties cannot mirror another mirror property • mirror properties cannot be used from the reversed direction of a relation Because of these limitations we are forced to introduce workarounds such as: • duplicating relations in both directions • creating additional direct relations between entities • using automations to maintain bidirectional links This leads to relation explosion in the data model and significantly increases model complexity. It also might have a performance impact building more infrastructure and automations than conceptually required, which adds operational overhead and system load. 💡Possible solutions Any of the following improvements would help solve this problem. 1️⃣ Flexible reports / widgets Allow reports or widgets to aggregate data from multiple related entities, not only a single entity. 2️⃣ Mirror properties as aggregation properties Allow mirror properties to be defined using a relation path, for example: Component → App Version → Deployment → health_rating Component <- SonarQube Project → coverage Component -> System <- Business Service → Domain 3️⃣ At minimum Support: • mirroring a mirrored property through a direct relation • mirroring a property from the reversed direction of a relation (related idea https://roadmap.getport.io/ideas/p/mirror-properties-from-the-other-direction-of-relation ) 📈 Impact We have successfully connected all the required data sources to Port (infrastructure, deployments, and quality analysis). As a result, the catalog already contains the necessary operational and architecture data. However, due to the current limitations around mirror properties and cross-entity reporting, we are struggling to turn this data into useful dashboards and reports.
0
·
Data model
Load More