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

    Milda

    11/06/2024, 4:31 PM
    hey, we seem to have a contract comparison in pactflow stuck on the comparison execution, is there a way to force it to stop?
    m
    s
    • 3
    • 12
  • l

    Laymui Toh

    11/08/2024, 2:38 AM
    I am looking thro the consumer sns example code. https://docs.pactflow.io/docs/examples/aws/sns/consumer, is it becos I am using the lambda handler so I need to setup/install the SAM? I notice this script at the package.json
    Copy code
    "test:integration": "sam local invoke ProductEventHandler --event  ./__tests__/events/update.json",
    this is to trigger the event to update to the SNS topics? this is different from running yarn test which is to generate the pact file? docs.pactflow.io Example NodeJS AWS SNS Consumer | PactFlow Documentation Source Code
    m
    • 2
    • 2
  • s

    Sravan Kumar

    11/15/2024, 6:26 AM
    Hello, I’m unable to log in to the portal successfully. I’ve tried this option many times but keep getting stuck on this page. Can anyone help?
  • r

    Rishav Singh

    11/19/2024, 1:14 PM
    Hi team!, I am trying to login into Pactflow using Azure AD but getting this window everytime can you please help ?
    m
    s
    • 3
    • 27
  • a

    Alex Kaufman

    11/20/2024, 12:18 AM
    I'm seeing the below in the old UI but new UI works. Are we expected to move to the new UI?
    m
    • 2
    • 2
  • j

    Jegadeesan Ponnusamy

    11/26/2024, 8:44 PM
    Hi #CLS16AVEE / #C9UTHV2AD, We are using Pactflow subscription for our contract testing. We noticed that the Datetime field verification for our bi-directional tests are failing for past couple of days (only for unspecified time format). But these tests are working for a while and we didn't face any failures. When we update the consumer tests to use LocalTime format or UTC time format, the tests are seems to be passing. So could you please tell if there are any recent updates in Pactflow which could be causing this issue? Attaching the provider and consumer contracts for your verification.
    platform-instance-mgmt-sync-operations.jsonplatform-instance-mgmt-k8s-sync-api-platform-instance-mgmt-sync-operations.json
    m
    s
    g
    • 4
    • 25
  • r

    Ruth

    12/03/2024, 7:36 AM
    Hi, I have this problem several times now so I want to bring it up. I have a pact with a provider and a consumer, most of them use pact-jvm. We have a CI running which publishes the pacts or the verification results from a branch as pending pacts and then we have the can I deploy question towards the DEV/PROD stage. This works really well as we also work with webhooks and so the pending pacts get verified automatically. But sometimes we run into the problem that a pending pact does NOT get verified. I rerun and rerun and only once I actually delete the pacts from pactflow and publish them again they get verified. Now I have another situation, where I have a service that is a consumer and on top a provider. The logs show that it was verifying the pact from DEV stage and also logs that it published a verification result. But when I look into pactflow that branch is still not verified and the
    can I deploy
    step also shows a missing verification
    Copy code
    Computer says no ¯\_(ツ)_/¯
    
    CONSUMER                              | C.VERSION           | PROVIDER                       | P.VERSION           | SUCCESS? | RESULT#
    --------------------------------------|---------------------|--------------------------------|---------------------|----------|--------
    Ratenkredit-Service-Template          | cd4f035...          | Partnermanagement-Kontaktdaten | 2024.12.02.10.35.40 | true     | 1      
    Ratenkredit-Service-Template-External | 2024-12-02T18-24-47 | Ratenkredit-Service-Template   | ???                 | ???      |
    Any idea what we are doing wrong? Happy to give more insides if needed
    m
    • 2
    • 4
  • v

    Vince Lee

    12/03/2024, 11:19 AM
    Hi folks, Has the way to use secrets in a webhook changed? I try and use
    ${user.mySecretName}
    and it comes back with
    Unknown dynamic variable
    . I'm using the new UI. Update: it works when you create a new webhook, but not when you are editing an existing one.
    m
    • 2
    • 1
  • d

    Dustin Iser

    12/03/2024, 9:42 PM
    Hello team. I'm trying to setup bi-directional contract testing using the OAS here: https://github.com/marqeta/marqeta-openapi/blob/main/yaml/CoreAPI-3.0.24.yaml However, the verification is failing with:
    Copy code
    {
      "error": {
        "message": "Cannot read properties of undefined (reading 'type')"
      }
    }
    I can't figure out what that means. Any help?
    m
    • 2
    • 4
  • i

    Iaroslav Dotsenko

    12/06/2024, 11:06 AM
    Hello team! I have the following request team to evaluate the value of Contract testing on our project. I have done POC with REST requests and OSS Pact broker, however it would be quite challenging for us to generate all the tests because are quite massive. A bit more about services, they are almost all the Java based and use both messages sync/async communication and REST API. So far we don't have any public APIs exposed it is just communication within different project teams. The main questions are the following: 1. Do we have any capability to generate provider contract from Avro message specification in PactFlow? 2. Who could help with the preliminary enterprise pricing for initial presentation?
  • k

    Kenneth Krause

    12/06/2024, 3:25 PM
    Compatibility Matric Chart -- please sort by publish contract datetime In the new UI, the compatibility matrix was replaced by the attached chart of green and red bars. It looks like it is being sorted from left-to-right ascending by the "compare datetime". But this doesn't make sense so use. It would make more sense to sort from right-to-left descending based still on the publish date time of the contract. The is the contract truth in time. The problem for us happens when the consumer shares a new contract then the matrix is rebuilt and compares against all previous version (bi-directional). But it starts with the latest and then goes back in time. And that means that the OLDEST contract is shown on the RIGHT. But time is often shown from left to right so the LAST PUBLISH DATE should be on the right.
    m
    • 2
    • 2
  • т

    Тронь Богдан

    12/09/2024, 10:08 PM
    Hi everyone, I have a question about how contract verification works in multi-stage environments. Suppose I have a master branch deployed to both the Dev and QA environments for both Consumer and Provider apps. Now, I create a new test in my Consumer app in a new iteration. Here’s what happens in the pipeline: 1. A new Pact is published to PactFlow. 2. The webhook triggers and calls the Provider’s verification CI (on the master branch). 3. The Provider publishes successful verification results. What should I expect as the output of the
    can-i-deploy
    script when I run it from the Consumer app for the QA environment? What would happen if the Provider QA environment was associated not with a master branch? So, what I don't really understand is when the Provider publishes verification results, how are they matched to a specific environment?
    m
    • 2
    • 6
  • p

    Paolo Laurenti

    12/11/2024, 10:21 AM
    Hi everyone, Does anyone know if it's possible to configure all teams added by default to all existing environments? I am in a situation where we have only two envs, and all the teams should be linked to both environment. I'd like to find a way to not have to do it manually every time a new team is created. Tnx
    m
    • 2
    • 6
  • v

    Valerio Iachini

    12/13/2024, 9:14 AM
    Hi all, I was reading the webhook documentation and came across this image. I’m curious: how does it work when a consumer publishes contract changes for multiple providers? Is there a way to configure a trigger that waits for all verifications to complete? Instead of using a webhook, would polling with the following command be a better approach in cases where the broker might fail to trigger the deployment CI (e.g., due to unexpected issues) or when there are multiple providers? From my understanding, it returns without errors if all verifications are successful. Does this mean it will wait for all verifications to complete?
    Copy code
    can-i-deploy \
      --pacticipant ${PACTICIPANT} \
      --version ${GIT_COMMIT} \
      --to-environment ${ENVIRONMENT} \
      --retry-while-unknown 30 \
      --retry-interval 10
    Thanks!
  • m

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

    12/13/2024, 11:03 AM
    the webhook will fire for all relevant providers (there are different webhooks, so this is generally speaking).
  • m

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

    12/13/2024, 11:03 AM
    The “fetch results” is effectively the
    can-i-deploy
    step.
  • m

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

    12/13/2024, 11:05 AM
    In this context, webhooks are about ensuring there are no verification gaps or accelerating feedback loops.
    can-i-deploy
    prevents you deploying something that is unsafe (guards against various scenarios, including gaps in the test “matrix”, race conditions)
    v
    • 2
    • 3
  • m

    Milda

    12/16/2024, 3:07 PM
    hello~, we noticed some problems with failing contracts. There were previously no issues, a POST endpoint accepted a
    application/x-www-form-urlencoded
    request, it was defined as per the OAS3 spec (
    type: object
    , then key-value pairs as properties) and sent as key-value pairs, string format, by the consumer; i.e.
    "key=value&key2=value2"
    . Issue arose when adding a 2nd request body option for an
    application/json
    . Now, all of a sudden, the contract interaction that worked previously (for
    x-www-form-urlencoded
    ) is failing, saying the request body must be an object. A new interaction for the
    application/json
    works (with a json request body), but the old one (form) does not. Both
    application/json
    and
    application/x-www-form-urlencoded
    are expected to work, as long as one of them is provided for the POST request. Any ideas on whether this is an error on our end or a bug in the swagger validator? Relevant bits of code: Consumer contract relevant part (looks the same when passing and when failing w/ application/json):
    Copy code
    "request": {
            "method": "post",
            "path": "/transfers/create",
            "headers": {
              "X-Request-Id": "96c21705-fbea-4be0-8e3f-6b9543cad0d7",
              "Content-Type": "application/x-www-form-urlencoded"
            },
            "body": "source_account_id=a66ca63f-e668-47af-8bb9-74363240d781&destination_account_id=22ed17b5-b90c-424e-aa78-d24928b1778e&currency=USD&amount=150.00&reason=reason&unique_request_id=58e78791-e0e5-012c-2dee-001e52f3c730&request_id=96c21705-fbea-4be0-8e3f-6b9543cad0d7"
          },
    OAS schema old (worked)
    Copy code
    requestBody:
            required: true
            content:
              application/x-www-form-urlencoded:            
                schema:
                  type: object
                  properties:
                    request_id:
                      type: string
                      description: The request ID used for tracing requests set in the request body
                    principal_identifier:
                      $ref: "#/components/schemas/PrincipalIdentifier"
                    source_account_id:
                      description: Account UUID of the paying account.
                      type: string
                      format: uuid
                    destination_account_id:
                      description: Account UUID of the receiving account.
                      type: string
                      format: uuid
                    currency:
                      description: Three-letter ISO currency code.
                      type: string
                      pattern: '^[A-Z]{3}$'
                    amount:
                      description: Amount
                      type: string
                      format: decimal
                      pattern: '^(\d+(\.\d{1,3})?)$'
                    reason:
                      description: User-generated reason for transfer, freeform text.
                      type: string
                      maxLength: 255
                    unique_request_id:
                      description: User-generated idempotency key. The value must be 100 characters or fewer.
                      type: string
                      maxLength: 100
                  required:
                    - source_account_id
                    - destination_account_id
                    - currency
                    - amount
    New schema reuses the same schema, just adding an extra content type, i.e.
    Copy code
    requestBody:
            required: true
            content:
              application/x-www-form-urlencoded:
                schema:
                  $ref: "#/components/schemas/<schema>"
              application/json:
                schema:
                  $ref: "#/components/schemas/<schema>"
    error:
    Copy code
    Request body is incompatible with the request body schema in the spec file: must be object
    Ta!
    m
    • 2
    • 34
  • r

    Romain Létendart

    12/19/2024, 4:38 PM
    Hey 👋 I've tried signing up for the free plan but it seems I always get redirected to https://pactflow.io/try-for-free/ after filling in my details (First Name, Last Name, Phone Number, Organization) in SmartBear. Any ideas what could be happening here?
    b
    m
    • 3
    • 4
  • s

    Santosh Kumar

    01/13/2025, 9:52 AM
    Hi everyone, Can someone please share the list of possible errors for Can-I-Deploy failures in pactflow. Thanks in advance
    m
    • 2
    • 1
  • p

    Paolo Laurenti

    01/14/2025, 10:37 AM
    Hi 👋🏻, does anyone know why the PactFlow APIs don’t include a call to promote users to Team Administrators within teams? The only way I’ve found to perform this operation is by manually clicking through the PactFlow web interface. I’d like to automate this process, and a Web API call would be extremely helpful.
    m
    • 2
    • 3
  • 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
1...910111213Latest