https://pact.io logo
Join Slack
Powered by
# pactflow
  • h

    Hernan Mateika

    01/14/2025, 6:17 PM
    Hi all! 👋 i have seen that pactflow has been acquired by Api Hub. on my company we were thinking on performing a PoC by using the free plan and now I have seen that pricing schema changed. How much time trial period last? I have not seen any information about this in the terms of use, thanks in advance!
    y
    m
    d
    • 4
    • 7
  • j

    Jack Wheatley

    01/15/2025, 8:42 PM
    Hi pactflow team, I'm one of the maintainers of pact4s. We were using test.pactflow.io for testing our project using a shared testing username and password, but since the update to the new website it seems that no longer is accepted. Is there a way to continue using this service for pact library developers?
    y
    m
    • 3
    • 9
  • d

    D

    02/03/2025, 8:51 AM
    Hi My provider spec swagger results in this, which can be seen in the PactFlow broker
    Copy code
    someProxies array[object] or null
      name string or null
      enabled  boolean
      defaultSettlement integer<int32> or null
       Allowed values:
       1 2 null
    My consumer contract contains this
    Copy code
    "someProxies ": [
          {
            "defaultSettlement": null,
            "enabled": true,
            "name": "My Settlement"
          }
    However I get this error for the "defaultSettlement" Response body is incompatible with the response body schema in the spec file: must be equal to one of the allowed values Can anyone help figure out whats going wrong here? ps. I am using null, because I cant figure out a way cast to int due to the way the nullable definition is set up.
    m
    s
    • 3
    • 11
  • p

    Paul Beigang

    02/04/2025, 1:59 PM
    Hi there, is that right that when I define "develop" as "main" branch in the application settings pactflow will always show "main" (even if the branch is named develop in the git repo)?
    m
    • 2
    • 2
  • g

    Gabriel Vasconcelos

    02/07/2025, 2:46 PM
    Hello. Is there a way to get an error from pactflow when a pact or an openapi file gets published to a non-existent pacticipant?
    m
    • 2
    • 2
  • p

    Piyush Sardana

    02/08/2025, 9:49 AM
    Hi, I am trying to publish the consumer contract to pactflow instance, here's the code I use. First time with the same token it is successful but subsequent attempts to publish results in this error.
    Copy code
    -> "Forbidden. Either you are using a read only token for a request that requires a write token (the most likely cause), or you do not have the required permissions.\n"
    read 162 bytes
    Conn keep-alive
    Forbidden. Either you are using a read only token for a request that requires a write token (the most likely cause), or you do not have the required permissions.
    Copy code
    publish-pact:
      stage: publish_pact
      image: pactfoundation/pact-cli:latest
      needs:
        - build-and-test
      script:
        - echo "Publishing consumer pacts to Pact Broker"
        - >-
          pact-broker publish target/pacts
          --broker-base-url="${PACTFLOW_HOST_URL}"
          --broker-token="${PACTFLOW_IAM_READ_WRITE_TOKEN}"
          --consumer-app-version="${CI_COMMIT_SHA}"
          --branch="${CI_COMMIT_BRANCH}"
          --merge
          --verbose
      artifacts:
        when: always
      rules:
        - if: $CI_COMMIT_BRANCH
    m
    • 2
    • 6
  • s

    Spencer

    02/11/2025, 3:34 PM
    @Spencer has left the channel
  • r

    Rishav Singh

    02/12/2025, 10:41 AM
    Hi team!, does pact-broker client support
    publish-provider-contract
    operation, I don't see it here ?
  • m

    Matt (pactflow.io / pact-js / pact-go)

    02/12/2025, 10:44 AM
    No, only the pactflow command does that
    r
    • 2
    • 7
  • m

    Matt (pactflow.io / pact-js / pact-go)

    02/12/2025, 10:45 AM
    It's not something the pact broker supports (i.e. it's Pactflow only feature)
  • m

    Milda

    02/13/2025, 10:38 AM
    hi, is it possible to hit a particular URL to get the remaining AI tokens available for the account? ie equivalent of
    pactflow-ai status
    ?
    m
    • 2
    • 3
  • m

    Milda

    02/14/2025, 3:55 PM
    👋 are there plans to support additional languages for Pactflow AI?
    m
    • 2
    • 7
  • b

    Bas Dijkstra

    02/18/2025, 10:18 AM
    Is there a way to transfer the 'initial user' setting to someone else? I have created a PactFlow instance for a client I'm working with, but as I'm leaving them by the end of next month, I would like to be able to remove myself as a user from the system at some point, and also transfer all contact details to point to someone else in the organization. Right now, I can't.
  • t

    Tyler Powell

    02/24/2025, 5:09 PM
    Hi, I have a quick API question. I was looking at the docs and was wondering what the API resource to get this response: https://docs.pactflow.io/docs/bi-directional-contract-testing/compatibility-checks#api-resources I ultimately am looking to populate the response from the crossContractVerificationResults as a GitHub PR comment if the cross contract verification fails. I found this: https://smartbear.portal.swaggerhub.com/pactflow/default/pactflow_saas_api?_gl=1*1wb6kaf*_gcl_au*OTg4MTA0MjM0LjE3Mzc1NjExMzA.#/can-i-de[…]n-i-deploy but no mention of crossContractVerificationResults here
    m
    • 2
    • 5
  • g

    Gabriel Vasconcelos

    02/25/2025, 10:01 AM
    Hello. In pactflow SaaS, is it possible to receive alerts/warnings when a webhook trigger fails? Or to collect the logs?
    m
    • 2
    • 6
  • m

    Milda

    02/25/2025, 11:04 AM
    hey - is there an api call to delete a particular integration rather than all? I can see the DELETE option in api docs but it seems to only apply to all integrations
    m
    • 2
    • 2
  • r

    Ruth

    02/25/2025, 12:01 PM
    Hi, For one request we get a 500 back from pactflow with the message
    Response: {"error":{"message":"An error has occurred. The details have been logged with the reference HIIXRpjPHk","reference":"HIIXRpjPHk"}}
    Where can we look at the logs with this reference number?
    m
    • 2
    • 3
  • s

    Santosh Kumar

    03/03/2025, 1:30 PM
    Hi team, I am working on creating new consumer contract tests and for that I need properties of the consumer pact json to follow a custom order, currently it seems the properties follow alphabetical order in json pact in pactflow. Is there any way to change the order of properties of consumer pact in pactflow? Thanks in advance
    m
    r
    • 3
    • 10
  • d

    D

    03/04/2025, 1:06 AM
    Hi I have a provider enum that has two values
    Copy code
    public enum defaultSettlementMethod
      {
        Method1= 1,
        Method2 = 2,
      }
    In the OAS spec, it shows as "Allowed Values 1 2" (see screenshot) I would like to be able to check in the consumer that it is these values only, rather than have an integration test for this. Is that possible? I know it probably goes against the philosophy of Pact to do this. However in the past we have found that providers may add new values to the enums, and the consumers weren't expecting the change. Adding any kind of test in the provider may still result in the outcome, because this still relies on the provider team communicating the change effectively. Hope that makes sense?
    m
    e
    • 3
    • 7
  • v

    Valerio Iachini

    03/13/2025, 9:11 AM
    Hi, At my company, we use the official PactFlow GitHub actions: https://github.com/pactflow/actions with GitHub self-hosted runners. Since these actions rely on Docker images, our setup could hit the DockerHub rate limit. We don’t have a DockerHub account as we use a private registry for container images. Have other companies encountered a similar issue? Do you have any recommended solutions? If not, would it be possible to add an input to the actions to support private registries for images? Thanks!
    m
    • 2
    • 4
  • g

    Gabriel Vasconcelos

    03/18/2025, 5:09 PM
    Hello team, I have some questions about matching rules in bidirectional. it seems like all matches are using the pact examples, while ignoring the matchingRules Given this sample swagger:
    Copy code
    {
      "openapi": "3.0.1",
      "info": {
        "title": "IDEServices",
        "description": "IDEServices REST API",
        "version": "v1"
      },
      "paths": {
        "/asset-model/v1/features": {
          "get": {
            "summary": "Gets the stored Feature Toggles.",
            "description": "Gets the stored Feature Toggles.",
            "operationId": "GetAllFeatureTogglesValues",
            "responses": {
              "200": {
                "description": "OK",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "array",
                      "items": {
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "properties": {
                          "key": {
                            "minLength": 10,
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    and this sample pact:
    Copy code
    {
      "consumer": {
        "name": "web_ide"
      },
      "interactions": [
        {
          "description": "Get all features",
          "pending": false,
          "request": {
            "method": "GET",
            "path": "/asset-model/v1/features"
          },
          "response": {
            "body": {
              "content": [
                {
                  "key": "bigexample"
                }
              ],
              "contentType": "application/json",
              "encoded": false
            },
            "headers": {
              "Content-Type": [
                "application/json"
              ]
            },
            "matchingRules": {
              "body": {
                "$[*].key": {
                  "combine": "AND",
                  "matchers": [
                    {
                      "match": "what I put here doesnt seem to matter"
                    }
                  ]
                }
              },
              "header": {},
              "status": {}
            },
            "status": 200
          },
          "type": "Synchronous/HTTP"
        }
      ],
      "metadata": {
        "pact-js": {
          "version": "14.0.0"
        },
        "pactRust": {
          "ffi": "0.4.22",
          "models": "1.2.3"
        },
        "pactSpecification": {
          "version": "4.0"
        }
      },
      "provider": {
        "name": "IDE-Services"
      }
    }
    I get no errors no matter how I change the matchingRules. but if I change the example to something else, I get
    Copy code
    location: '[root].paths./asset-model/v1/features.get.responses.200.content.application/json.schema.items.properties.key.minLength'
    are we doing something wrong? aren't the matchingRules suppose to be more important than the example in the request/response?
    y
    m
    • 3
    • 24
  • k

    Krysty

    03/21/2025, 4:48 AM
    Hello pactflow team, I have a question about publishing a provider contract via CLI. I'm getting this SSL certificate error but I don't remember it being mentioned during the demo.
    OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 peeraddr=108.158.213.75:443 state=error: certificate verify failed (self-signed certificate in certificate chain)
    b
    m
    s
    • 4
    • 6
  • t

    Tyler Powell

    03/28/2025, 5:12 PM
    Hi, I am getting the following error on compatibility check:
    Copy code
    {
      "error": {
        "message": "Cannot read properties of undefined (reading 'name')"
      }
    }
    The contract hasn't fundamentally changed but I noticed that this error is only occurring for pacts verified with: Verifier pactflow-openapi-pact-comparator Version 1.0.0 previous pacts were verified with: Verifier pactflow-swagger-mock-validator Version 14.5.0
    m
    s
    • 3
    • 3
  • n

    Nikita Fidirko

    04/01/2025, 4:20 PM
    Hi Pactflow team, I'm currently exploring bi-directional contract testing but I'm a bit confused in terms of supported provider contract formats. https://docs.pactflow.io/docs/bi-directional-contract-testing/provider - here, only OAS formats are mentioned. https://docs.pactflow.io/docs/bi-directional-contract-testing - in the video here, OAS is mentioned as one of the possibilities. However, it's not mentioned what other formats are supported. https://docs.pactflow.io/docs/bi-directional-contract-testing/publishing#publishing - in the CLI reference, I can see the parameter
    --specification=SPECIFICATION
    but there are no mentions about possible values (apart from OAS) so, the question is: is OAS the only format that's supported?
    m
    • 2
    • 7
  • g

    Gabriel Vasconcelos

    04/03/2025, 8:40 PM
    Hello team, when I reach to
    {tenant}/pacticipant/{pacticipant}/network
    (singular), I get a huge list of integrations, which I assume is the comprehensive list with them all. If I try
    {tenant}/pacticipants/{pacticipant}/network
    (plural), it returns me 404. However, through the web I can reach
    {tenant}/pacticipants/{pacticipant}/network
    (plural) and I receive only the network for the desired pacticipant. Is it possible to make this reachable via the API? Thanks
  • m

    Matt (pactflow.io / pact-js / pact-go)

    04/03/2025, 9:50 PM
    What are you trying to do Gabriel?
    g
    • 2
    • 7
  • o

    Otoniel Rodriguez Delgado

    04/04/2025, 7:20 PM
    Hi I would like to know if it is possible to configure Pactflow to automatically assign users to teams upon authentication via SSO, for example, using Azure Active Directory (Azure AD). The goal is for Pactflow to map the groups a user belongs to in the Active Directory (AD) during the login process, and based on that information, automatically assign them to one or more specific teams within the platform. This would allow the appropriate permissions and roles to be applied from the first login, without requiring manual assignments. Is it possible to enable this functionality to map SSO groups to Pactflow teams?
    m
    • 2
    • 2
  • s

    Simon Raess

    04/17/2025, 9:07 AM
    I am trying to understand https://docs.pactflow.io/docs/bi-directional-contract-testing/provider. Why would I want to publish a failed provider verification? If my provider verification test fails, my pipeline will be in a failed state. I will never move on and e.g. try to install this on an environment. I already know the version is broken.
    y
    • 2
    • 26
  • r

    Rui

    04/24/2025, 4:02 PM
    Hi, I hope this is the right channel to ask this question. I am getting this error (Http 503) when trying to run the contract tests against pactflow. I am validating the contract against deploy or released contracts (.deployedOrReleased()). if I remove this method call it works. Can anyone here help me with this or redirect me to the correct channel? I'm using java and here is the stacktrace:
    Copy code
    at au.com.dius.pact.core.pactbroker.HalClient.handleHalResponse(HalClient.kt:336)
    at au.com.dius.pact.core.pactbroker.HalClient.access$handleHalResponse(HalClient.kt:158)
    at au.com.dius.pact.core.pactbroker.HalClient$getJson$1.invoke$lambda$0(HalClient.kt:311)
    at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:247)
    at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:188)
    at au.com.dius.pact.core.pactbroker.HalClient$getJson$1.invoke(HalClient.kt:310)
    at au.com.dius.pact.core.support.KotlinLanguageSupportKt.handleWith(KotlinLanguageSupport.kt:35)
    at au.com.dius.pact.core.pactbroker.HalClient.getJson(HalClient.kt:305)
    at au.com.dius.pact.core.pactbroker.HalClient.fetch(HalClient.kt:269)
    at au.com.dius.pact.core.pactbroker.PactBrokerClient.fetchPact(PactBrokerClient.kt:782)
    at au.com.dius.pact.core.model.PactReaderKt.loadPactFromUrl(PactReader.kt:60)
    at au.com.dius.pact.core.model.DefaultPactReader.loadFile(PactReader.kt:413)
    at au.com.dius.pact.core.model.DefaultPactReader.loadPact(PactReader.kt:210)
    at au.com.dius.pact.provider.junitsupport.loader.PactBrokerLoader.loadPactsForProvider(PactBrokerLoader.kt:266)
    at au.com.dius.pact.provider.junitsupport.loader.PactBrokerLoader.load(PactBrokerLoader.kt:128)
    at au.com.dius.pact.provider.junit5.PactVerificationInvocationContextProvider$resolvePactSources$pactSources$1$pacts$1.invoke(PactJUnit5VerificationProvider.kt:78)
    at au.com.dius.pact.core.support.KotlinLanguageSupportKt.handleWith(KotlinLanguageSupport.kt:35)
    at au.com.dius.pact.provider.junit5.PactVerificationInvocationContextProvider.resolvePactSources(PactJUnit5VerificationProvider.kt:78)
    at au.com.dius.pact.provider.junit5.PactVerificationInvocationContextProvider.provideTestTemplateInvocationContexts(PactJUnit5VerificationProvider.kt:45)
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
    m
    y
    • 3
    • 9
  • j

    James Fraser

    04/29/2025, 9:00 AM
    Hey folks 👋 I was wondering is it possible to disable a Pactflow user via the API?
    p
    m
    • 3
    • 5