bethskurrie
2019-08-06 09:45
has joined #pactflow

matt.fellows
2019-08-06 09:45
has joined #pactflow

uglyog
2019-08-06 09:45
has joined #pactflow

christophe.leray
2019-08-07 15:43
has joined #pactflow

anupamknw
2019-08-08 18:46
has joined #pactflow

neonmd
2019-08-14 16:30
has joined #pactflow

neonmd
2019-08-14 16:30
Hi, I was looking at the comparison table on pactflow's site: https://pactflow.io/pricing/ What do you mean by Swagger integration in the business column?

matt.fellows
2019-08-14 20:38
Hi Greg, we are still figuring out exactly how it will work, but the general challenge is articulated here: https://blog.pactflow.io/p/9b0db099-cadb-4c36-b123-0586b1e87998/ (still a WIP before we fully publish it to the world)

matt.fellows
2019-08-14 20:39
We have some workflows planned out to support it and have performed technical validation (spikes etc.) on some options, but are interested in feedback on the problem before we go too far down the implementation path.

matt.fellows
2019-08-14 20:39
so yes, it?s _not_ ready just yet.

neonmd
2019-08-14 21:51
For my company we require swagger generation to provide to large companies we contract with and their request is usually along the lines of "email our dev team your swagger". We however happily use Pact internally as Swagger is no match for up-to-date and accurate docs and contract testing. I've also had to deal with a whole pile of misleading or patchy Swagger myself from other vendors. Any attempt at marrying the Swagger and Pact world together so that Swagger is forced to be validated like Pact is would be a boon to the whole industry. It sounds like your direction would be take Swagger and extend it to form request and response pairs then convert that into a Contract. Currently it's easier to make a Pact than Swagger, might there be a workflow to extend a Pact into Swagger?

matt.fellows
2019-08-14 21:57
> Any attempt at marrying the Swagger and Pact world together so that Swagger is forced to be validated like Pact is would be a boon to the whole industry. Agree! > Currently it?s easier to make a Pact than Swagger, might there be a workflow to extend a Pact into Swagger? As in, generate a Swagger from a Pact file?

matt.fellows
2019-08-14 22:00
One of the approaches (and there are a few), is to enable provider teams to continue using Swagger and providing a mechanism to verify that their swagger implementation is correct during their local tests (akin to provider verification today). They then publish to the Broker (which basically supports this already, we just don?t really advertise it) and we would provide a mechanism for the consumer to verify that they are compatible with the provider. This inverts the _consumer-driven_ workflow - because it?s _not_ consumer driven, but it does provide the same sets of guarantees

matt.fellows
2019-08-14 22:00
So basically, one side of the contract is a Swagger document, the other is a Pact test - and we ensure they are compatible

matt.fellows
2019-08-14 22:01
This has another nice side-effect - for other provider-driven workflows that aren?t Swagger, we can still use the same mechanisms to prove compatibility

matt.fellows
2019-08-14 22:01
or put another way - Swagger and Pact are just types of general _contracts_

matt.fellows
2019-08-14 22:02
> ?email our dev team your swagger?. This is exactly what we see over here, but you can extend that to internal teams also ?I sent you the latest swagger last week?

matt.fellows
2019-08-14 22:03
The best version of this was a colleague who was notified of an API change via Yammer - unsurprisingly, the notification wasn?t received and the API change broke a lot of things

matt.fellows
2019-08-14 22:04
(just saw your signup btw, let us know if we can help you get started in any way!)

samuel.hodgkinson
2019-08-21 11:33
has joined #pactflow

brent.foley
2019-08-22 20:30
has joined #pactflow

brent.foley
2019-08-22 20:32
hello. I'm testing the trial for pactFlow and while my consumer can publish pacts just fine, I am getting connection timeouts when the provider attempts to call it. I used the /docs/troubleshooting example for junit5

brent.foley
2019-08-22 21:05
it's likely a corporate proxy issue but i don't know where I'm supposed to tell pact about the proxy config. i was hoping it would implicitly use env vars like http_proxy if set

brent.foley
2019-08-22 21:05
and again, the consumer side talks to pactflow just fine from same machine

matt.fellows
2019-08-22 21:36
Interesting, I would have thought the same

matt.fellows
2019-08-22 21:36
Java system properties, maybe?


matt.fellows
2019-08-22 21:39
@uglyog what?s the process for using a proxy in Pact JVM. The issues in the repo don?t indicate the solution (except one that states you can set the client)

matt.fellows
2019-08-22 21:39
is the consumer Java or something else, out of interest?

brent.foley
2019-08-22 21:53
@matt.fellows consumer is also java

brent.foley
2019-08-22 21:53
and consumer has pact settings in gradle task while provider is java annotations, if that is relevant

uglyog
2019-08-22 22:49
Should be the same, they just need to be set on the test JVM (Gradle will spin up a separate process to run the tests). You do this in the `test` config using `systemProperty`. See https://github.com/DiUS/pact-jvm/issues/690#issuecomment-394054857 for an example (of setting different properties though)

brent.foley
2019-08-22 23:24
@uglyog what are the names of the systemProperties you're referring to in the test { } section of gradle file? I had tried setting http.proxyHost and http.proxyPort as environment variables but that didn't help

uglyog
2019-08-22 23:29
Let me just double check for you, but they should be the properties as documented here: https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/SystemDefaultHttpClient.html

uglyog
2019-08-22 23:35
Ok, can you raise a defect for that, it is not enabling the default system properties for the HTTP client

uglyog
2019-08-22 23:36
In the mean time you can configure the HTTP client in your JUnit5 test.

uglyog
2019-08-22 23:49
Sorry, the system properties should be enabled (I just checked the source code). Can you try adding the following to your Gradle?

uglyog
2019-08-22 23:51
``` test { useJUnitPlatform() // Show test results. testLogging { events "passed", "skipped", "failed" } systemProperty('http.proxyHost', 'forwardproxy') systemProperty('http.proxyPort', '3211') systemProperty('https.proxyHost', 'forwardproxy') systemProperty('https.proxyHost', '3211') } ```

uglyog
2019-08-22 23:51
something like that

brent.foley
2019-08-24 22:40
@uglyog thanks!

brent.foley
2019-08-24 22:45
I'm trying to use pact broker cli against pactFlow broker. I followed example that wants a username and password but nothing I tried works; I get "Authentication failed". I verified it's not a proxy issue cause I can talk to example test broker with same command. I think I'm confused as to what I use for username and password. For my java tests it recommended using api token for username and blank password for example. That doesn't work for pact-cli though. I tried my actual username and password and that also failed. Tried my username and token and that also failed. I am following example here: https://hub.docker.com/r/pactfoundation/pact-cli

bethskurrie
2019-08-24 23:32
@brent.foley you just use a bearer token for Pactflow API access. Your username/password are for the UI.

bethskurrie
2019-08-24 23:36
Set `PACT_BROKER_TOKEN` instead of the username and password variables. You can get your token from the settings page.

bethskurrie
2019-08-24 23:37
@uglyog is this right? `For my java tests it recommended using api token for username and blank password for example. `? I thought we added a proper field for the token in all the places. Did we miss one?

uglyog
2019-08-24 23:38
No we didn?t, we spoke about it.

bethskurrie
2019-08-24 23:38
We didn't miss it, or we didn't add it?

uglyog
2019-08-25 01:32
We spoke about needing to do it, just nobody did it

bethskurrie
2019-08-25 01:33
Righto. Sounds like a #goodfirstissue to me


matt.fellows
2019-08-25 12:42
Reminds me about needing to update your Avatar. We all want to see it happen. The only issue is, no one will recognize you after

brent.foley
2019-08-25 22:53
Aha! Yep that PACT_BROKER_TOKEN var worked. I missed that in the docs. Thanks @bethskurrie @uglyog @matt.fellows

uglyog
2019-08-26 21:47
@matt.fellows avatar updated. I hope you?re happy.

matt.fellows
2019-08-27 05:50
I am

bethskurrie
2019-08-27 07:21
We all are @uglyog

brent.foley
2019-08-27 17:00
hello. Does the pact-cli docker tool allow a proxy to be passed in? When I run the command on our build agents I am seeing "OpenSSL::SSL::SSLError - SSL_connect returned=1" ... "tlsv1 alert access denied". However, I don't get these errors when I run on my machine so I am wondering if it's certificate related?

brent.foley
2019-08-27 17:08
ah, i passed http_proxy and https_proxy as -e params and it worked :slightly_smiling_face:

joao
2019-08-29 13:36
has joined #pactflow

kong
2019-09-02 05:22
has joined #pactflow

bethskurrie
2019-09-03 04:05
Oh the joys of corporate proxies :cry:

bethskurrie
2019-09-03 04:06
How are things going apart from proxy woes @brent.foley?

tritorto
2019-09-24 04:15
has joined #pactflow

tritorto
2019-09-24 04:19
Hey there, im testing webhook integration with our TeamCity atm, and have run into a problem when Testing the webhook in PactFlow: `An unexpected error has occured. This error has been sent to the Pacflow team and will be investigated ASAP.` I have the curl working locally which is triggering a build ok - so far our devops have enabled added the IP address for our CI to access as per the pactflow faq and also made TC accept all CORS. Any help?

bethskurrie
2019-09-24 04:52
Hi @tritorto. Can you describe what you're seeing. I'm just looking at our systems to work out why I can't see an error on our side.

nathan.deamer
2019-09-26 09:40
has joined #pactflow

nathan.deamer
2019-09-26 09:41
Hi, Just signed up for pactflow team - is there anyone available to help add google authentication? :slightly_smiling_face:

bethskurrie
2019-09-26 09:43
Just saw your email come through. Can you send the domain that you would like to use in another email?

nathan.deamer
2019-09-26 09:45
Of course :slightly_smiling_face:

bethskurrie
2019-10-14 02:33
added an integration to this channel: https://pact-foundation.slack.com/services/BPBESL6AG

2019-10-14 02:34
Notification from *Pactflow Technical Blog* :ghost:

ryan.dens
2019-10-15 12:47
has joined #pactflow

2019-10-18 05:30
Notification from *Pactflow Technical Blog* :ghost:

2019-10-22 01:59
Notification from *Pactflow Technical Blog* :ghost:

vitaliy.grigoruk
2019-11-01 12:00
has joined #pactflow

mahadi087
2019-11-04 09:23
has joined #pactflow

matt.fellows
2019-11-10 03:16
FYI our publish maintenance window is underway. See http://status.pact.dius.com.au/


dschwartz
2019-11-12 23:48
has joined #pactflow

vitaliy.grigoruk
2019-11-21 14:25
Hi there, couple of questions / requests: ? we?re using github authentication and I see that I need to re-login quite frequently. Is it possible to make session last longer? ? would be nice to have a link to ?download? a JSON version of pact contract from a page which shows contract contents & verification results.

bethskurrie
2019-11-21 22:37
Ron will chat to you about the authentication. I'll put the download request into our backlog. Can you expand on that use case further?

uglyog
2019-11-21 22:45
How often are you having to log in? Every hour? Are you closing the browser, or leaving it open?

uglyog
2019-11-21 22:50
We have a change to our authentication that we may be releasing today that may fix that for you.

vitaliy.grigoruk
2019-11-22 10:35
@beth sometimes it is very convenient to download a contract JSON locally for test troubleshooting (on provider side). E.g. when we implement new pact tests and both teams haven?t settled on exact state handlers that needs to be added to provider. In this case provider team: ? downloads a pact json file, ? implement state handlers ? and manually modifies `providerState` field in contract JSON. ? run provider verification tests using PACT_URL=/path/to/local/contract.json ? when tests are green -> they commit new state handlers and give a heads up to consumer team to update he contract with new states.

vitaliy.grigoruk
2019-11-22 10:37
@uglyog usually, I?m asked to login when I?m closing browser tab and try to open broker URL after some time (probably ~1h). I?ll check if this is also reproducible with browser tab being opened for some time.

bethskurrie
2019-11-22 10:38
We discovered a race condition when refreshing the cognito token. If you press refresh once again, you should still be logged in.

bethskurrie
2019-11-22 10:38
We should have a fix out on Monday.

bethskurrie
2019-11-22 10:39
I've put your notes into the feature card for the download pact.

bethskurrie
2019-11-22 10:40
As a quick fix, I might make the API browser button go straight to the Pact JSON in the HAL browser.

vitaliy.grigoruk
2019-11-22 10:42
I think we can wait for a proper fix, no rush

dschwartz
2019-11-22 16:40
@dschwartz has left the channel

bethskurrie
2019-11-25 22:35
@vitaliy.grigoruk the login issue has been fixed.

vitaliy.grigoruk
2019-11-26 08:24
Thank you, @bethskurrie and the team!

bethskurrie
2019-12-05 23:39
Today's Pactflow feature release: you can now paste the verification results URL into the browser, and see the pact/results together.

wesleythomaswilliams
2019-12-20 16:48
has joined #pactflow

vasile.pop
2019-12-23 14:43
has joined #pactflow

vasile.pop
2019-12-23 14:43
hi

vasile.pop
2019-12-23 14:44
had a great experience with Spring Cloud Contracts when I was working in a JVM collection of microservices. My current company uses Python, Java and TypeScript for microservices, so PACT is an obvious choice

vasile.pop
2019-12-23 14:45
however, a lot of messaging between services is done via Kafka and RabbitMQ. I noticed PactFlow supports Kafka out-of-the-box

vasile.pop
2019-12-23 14:46
can you point me towards some documentation related to this? would gladly pay for a service which would allow us to create event-=based contracts without intricate setup


vasile.pop
2019-12-24 08:26
thanks @uglyog, this is language-agnostic, right?

uglyog
2019-12-24 08:34
It's more about the process. The examples may be in Groovy or Kotlin

vasile.pop
2019-12-24 08:50
I do have a question about the terminology

vasile.pop
2019-12-24 08:51
Service A does a POST request to Service B, sending a payload with some metadata. Service B receives the POST request, responds with 200 and as a side-effect it will send an email. Obviously, A is a consumer, B is a producer (even though most engineers I work with are outraged by this inversion on classic terminology)

vasile.pop
2019-12-24 08:51
however

vasile.pop
2019-12-24 08:52
Service A sends a Kafka message (as Kafka producer) on a topic on which Service B listens to (as Kafka consumer). As soon as an event is received, Service B sends an email, as side effect. Is it the same terminology? Is B still the producer?

uglyog
2019-12-24 09:01
No, with messages it's the reverse. Service A produces the messages, service B consumes it

vasile.pop
2019-12-24 09:24
so in the second case the contracts should be created in Service B

matt.fellows
2019-12-25 22:26
In HTTP interactions we don't call service B a producer, but a _provider_. A is a _consumer_ of the service, which B provides

vasile.pop
2019-12-30 06:36
Got it, thanks. I still cannot find details about how http://pactflow.io supports Kafka

matt.fellows
2019-12-30 07:05
It doesn't support Kafka specifically (albeit how we could do that better for you would be useful for us to know)

matt.fellows
2019-12-30 07:05
It supports general messaging (we call it message pact)

matt.fellows
2019-12-30 07:06
I've forgotten. Which language are you using? Pact JVM had pretty good messaging support

vasile.pop
2019-12-30 07:06
Python and Javascript

vasile.pop
2019-12-30 07:06
```Support for Microservices, GraphQL, Message Queues, Websockets and serverless functions```

vasile.pop
2019-12-30 07:06
this draw my attention

vasile.pop
2019-12-30 07:10
is there Python support as well?


matt.fellows
2019-12-30 08:06
I can't remember which python impl does. Could be Pactman

matt.fellows
2019-12-30 08:06
If it doesn't, we'd appreciate an issue to help prioritise

vasile.pop
2019-12-30 08:11
thanks, will look into Pactman

tjones
2020-01-01 23:28
has joined #pactflow

johnny.nilsson83
2020-01-03 11:49
has joined #pactflow

pavel.azarau
2020-01-06 21:53
has joined #pactflow

bethskurrie
2020-01-06 23:46
@pavel.azarau as Matt said, it should be, but we have found that there were unexpected changes from AWS in the past. It was updated a couple of months ago because of this.

pavel.azarau
2020-01-07 00:16
thanks! please let me know when the list is updated. I?m trying to enable using of webhook (to trigger a job). But at the moment it looks like the problem is on our side :slightly_smiling_face:

pavel.azarau
2020-01-07 00:36
@bethskurrie So I believe I?ve fixed the issue on our side. But I need to whitelist the Pactflow IPs. So please let me know when the faqs page has a correct list

bethskurrie
2020-01-07 00:37
They should be correct, unless we have reason to believe they're not.

pavel.azarau
2020-01-07 00:37
cool. thanks. I?ll try again

anothonyvong
2020-01-07 16:56
has joined #pactflow

thomas.heilbronner
2020-01-07 21:45
has joined #pactflow

bernardoguerr
2020-01-09 14:52
has joined #pactflow

franklin.huynh
2020-01-09 23:53
has joined #pactflow

2020-01-10 03:04
Notification from *Pactflow Technical Blog* :ghost:

wesleythomaswilliams
2020-01-15 09:27
Can anyone give guidance of publishing pact verification results? I'm using Pact Flow, the pact is published and verified against with no problem, but I can't get the this property working `pact.verifier.publishResults`. Our tests are Java/Spring and driven by Maven and I've tried three different methods based on official docs I've read and blogs: 1. pom.xml adding to surefire plugin ``` <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <systemProperties> <property> <pact.verifier.publishResults>true</pact.verifier.publishResults> </property> </systemProperties> </configuration> </plugin>``` 2. pom.xml adding to pact plugin ```<plugin> <groupId>http://au.com.dius</groupId> <artifactId>pact-jvm-provider-maven</artifactId> <version>4.0.4</version> <configuration> <pactBrokerUrl>https://wesley.pact.dius.com.au</pactBrokerUrl> <pactBrokerToken>...</pactBrokerToken> <pactBrokerAuthenticationScheme>Bearer</pactBrokerAuthenticationScheme> <serviceProviders> <serviceProvider> <name>sain_service</name> <protocol>http</protocol> <host>localhost</host> <port>1337</port> <path>/</path> </serviceProvider> </serviceProviders> <systemProperties> <property> <pact.verifier.publishResults>true</pact.verifier.publishResults> </property> </systemProperties> </configuration> </plugin>``` 3. In the tests spring annotation ```@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes = { SainSearchControllerV1.class }, properties = { "server.port=1337", "pact.verifier.publishResults=true" })```

bethskurrie
2020-01-15 09:29
Does it fail auth or just doesn't do anything?

bethskurrie
2020-01-15 09:30
I have a feeling Ron mentioned this to me the other day. The verification step spawns another JVM instance, and the property needs to be passed through to it. Or something.

bethskurrie
2020-01-15 09:31
I'd ask in the pact-JVM channel. It's unlikely to be related to it being Pactflow (rather than the OSS Broker).

wesleythomaswilliams
2020-01-15 09:32
Thanks @bethskurrie I'll link to the post in there

wesleythomaswilliams
2020-01-15 09:34
Just checking the message I get, will update asap.

wesleythomaswilliams
2020-01-15 09:35
Skipping publishing of verification results as it has been disabled (pact.verifier.publishResults is not 'true')

bethskurrie
2020-01-15 09:37
Yeah, I remember there's some subtlety with this. It's because there's another JVM instance. But I don't know how to fix it.

bethskurrie
2020-01-15 09:38
I'm not a JVM dev. But I remember Ron talking about it. Someone in pact-jvm should know!

bethskurrie
2020-01-15 09:38
And let us know what in the docs needs updating when you find it!

wesleythomaswilliams
2020-01-15 09:38
Sure thing

wesleythomaswilliams
2020-01-15 11:51
I think my pact has started failing to be published to pact flow, but it doesn't seem to be reporting that to me: ```[DEBUG] (f) pactBrokerAuthenticationScheme = Bearer [DEBUG] (f) pactBrokerToken = <token> [DEBUG] (f) pactBrokerUrl = https://wesley.pact.dius.com.au [DEBUG] (f) pactDirectory = /Users/williamw/IdeaProjects/<provider>/target/pacts [DEBUG] (f) projectVersion = 0.0.4-SNAPSHOT [DEBUG] (f) settings = org.apache.maven.execution.SettingsAdapter@6aa648b9 [DEBUG] (f) skipPactPublish = false [DEBUG] (f) trimSnapshot = false [DEBUG] -- end configuration -- Publishing '<consumer>_service-<provider>_service.json' ... HTTP/1.1 200 OK``` In Pact Flow, the Pact is showing: ```<consumer>_service (consumer) version: 0.0.4 Pact publication date: 6 days ago Pact specification version: 3.0.0``` I'll try deleting with https://github.com/pact-foundation/pact_broker/wiki/Deleting-resources and report back

wesleythomaswilliams
2020-01-15 12:24
Deleting all versions of the pact and then publishing again worked ok. Just trying to nail down when/why versions don't get published.

wesleythomaswilliams
2020-01-15 12:28
Ok, I think this must be related to versions. So I get a 200 back regardless, but the pact is only published if there's a version change, is that correct?

bethskurrie
2020-01-15 21:46
@wesleythomaswilliams if you republish with exactly the same consumer version and pact content, it's a no-op. The fact that you're getting a 200 OK instead of 201 Created says to me that's what is happening in your case.

bethskurrie
2020-01-15 21:49
I can see that you're using semantic version numbers. Can you have a read of this document? https://docs.pact.io/getting_started/versioning_in_the_pact_broker

wesleythomaswilliams
2020-01-15 21:59
Thanks @bethskurrie I've not dug into versioning yet, but that's one of the next things on my list. :slightly_smiling_face:

bethskurrie
2020-01-15 21:59
:thumbsup::skin-tone-3:

bethskurrie
2020-01-15 22:00
There are subtleties in the versioning that are good to understand. Let me know if you have any questions after reading the docs.

wesleythomaswilliams
2020-01-16 16:23
Had our dev engineers looking at the versioning side of things. I'll provide feedback as I get it, but first thing that was mentioned: ```Point 2: Ensure that application version numbers are unique. For example, a feature branch that changes the contract should not be able to have the same version number as any other branch - an application version should always identify one specific instance of application code.``` DEV: We don't work quite how that point requires. Our feature branches do not have their own versions We've been discussing it more and we don't think we can (or necessarily want to) move to having versions per feature branch. However, we think we've identified why we could get into problems. We're curious though, is this a reasonable description of that type of versioning that Pact would ideally work best with? https://medium.com/@simon.maxen/branch-based-versioning-5ebf6ca2bccb

tjones
2020-01-20 04:53
@wesleythomaswilliams If you?re doing versioning as described in that link, you will want to also tag your pacts with the feature branch, otherwise your `latest` pact might point to any branch

tjones
2020-01-20 04:54
Have you read the versioning page in the documentation?


bethskurrie
2020-01-20 04:55
@wesleythomaswilliams what do you mean that your feature branches don't have their own versions? Their git shas would be different wouldn't they?

tjones
2020-01-20 04:56
The versioning strategy he linked doesn?t have git shas in the version number

bethskurrie
2020-01-20 04:59
You don't have to use the exact same string for you application version as what you publish to the broker, but you do have to be able to reverse engineer one from the other.

bethskurrie
2020-01-20 05:00
If you want to use can I deploy, you have to be able to take the app version you're about to deploy and work out what version the broker is using

bethskurrie
2020-01-20 05:01
If you're publishing pacts with versions like `1.4.0` from multiple branches, you're definitely going to get corrupt data in the broker though.

tjones
2020-01-20 05:03
:point_up: Yep. The version you tell Pact and your contracts need to have a 1:1 mapping. A side point that I?ve been thinking that Pact could provide (or link to) some easy to use autoversioning tools for different ecosystems

tjones
2020-01-20 05:05
Also, I?ve never tried this, but I think it would work if just provide a different version to pact when publishing (eg `"${Version}-${Git SHA}"`). It doesn?t *have* to be your app version.

bethskurrie
2020-01-20 05:07
`x.(y+1).0-featureName-SNAPSHOT` is close, but you'd be overriding the pact with each build, and this can lead to race conditions as your data is then mutable.

bethskurrie
2020-01-20 05:17
I would recommend publishing the pacts and verifications with the git sha appended as metadata (`+abcd123`) as Tim mentioned before, and tagging (broker tagging) with the git branch name. When you use can-i-deploy, you'll need to do the same thing to make the versions match.

wesleythomaswilliams
2020-01-20 09:25
@bethskurrie @tjones I'm quite new to the team I'm in and branches and versioning etc aren't something I've had a deep understanding of before, so I'll feed all this back to the team. We've all read the Pact docs on versioning, but I've not looked at can-i-deploy yet. As I understand it, we're using semantic versioning, but based on your comments above I think my team may be underestimating problems we could encounter. The only issue we could think we might have is when two people create a branch in the same repo and they have the same version number e.g. 0.0.20-SNAPSHOT and those engineers make changes that result in the pact file being changed.

bethskurrie
2020-01-20 09:26
Those two pacts would overwrite each other.

bethskurrie
2020-01-20 09:27
So you would have very unreliable results if even one of them made a change (and you do tend to make changes to pacts on a branch, so you don't break your main line of development when adding new features)

wesleythomaswilliams
2020-01-20 09:27
Yeah, that was our understanding. The likelihood of that occurring in our team is very slim and we'd planned to mitigate it through education, but if adding the SHA to things resolves that problem, we may be able to do that.

bethskurrie
2020-01-20 09:28
It would definitely future proof your set up.

dperez
2020-01-21 22:38
has joined #pactflow

davidmolinero.com
2020-01-24 07:35
has joined #pactflow

davidmolinero.com
2020-01-26 10:19
Hello, I?ve been sending multiple emails in the last couple of weeks with regard to creating users in http://pactflow.io and I have not received any response so far, can you take a look into it or let me know if there is an issue of any kind? Thanks

matt.fellows
2020-01-26 10:21
Hi David, i?ll DM you to sort it out.

matt.fellows
2020-01-26 10:26
I can see 2 of the users haven?t yet set their passwords, but there are no issues I?m aware of.

wesleythomaswilliams
2020-01-28 16:15
If in my provider test I have the `@PactBroker` annotation configured to point to my pact flow account and `pact.provider.publishResults` set to true, am I correct in thinking my provider should then be verifying against pact flow when the test is executed? If that's correct and with that in mind, I'm trying to work out under what conditions I'd want to run `mvn pact:verify` and thus whether I even need the maven plugin specified in my pom.

matt.fellows
2020-01-28 21:23
mmmm might need @uglyog to confirm but it sounds like it. My understanding is that the annotation will pull down contracts from Pactflow, your test framework (JUnit I assume?) would then do the verification and at the end of it all, publish it back out. What I?m not so sure about is the publishing property

bethskurrie
2020-01-28 21:24
@wesleythomaswilliams there's some black magic with getting the publish property to work!

bethskurrie
2020-01-28 21:26
I think you use the annotations or the mvn config, but I'm just guessing.

bethskurrie
2020-01-28 21:26
Best to ask in the #pact-jvm channel

uglyog
2020-01-28 22:26
`mvn pact:verify` is used for execution the verification test against a running provider. It is unnecessary if you are using a JUnit test with the Pact annotations to do the same thing.

uglyog
2020-01-28 22:27
You don't need the Maven plugin, just the Pact JUnit libs on your test classpath.

wesleythomaswilliams
2020-01-29 09:06
Thanks @uglyog

wesleythomaswilliams
2020-02-05 12:59
I published a pact to pact flow today and my provider is reporting it has published the result of the verification, but it's not showing up on pact flow: ```2020-02-05 12:55:00.666 INFO 74045 --- [ main] a.c.d.p.p.DefaultVerificationReporter : Published verification result of 'http://au.com.dius.pact.core.pactbroker.TestResult$Ok@492e988c' for consumer 'Consumer(name=tu_hybris_product_adapter)'```

wesleythomaswilliams
2020-02-05 13:01
Integrations shows: ``` { "consumer": { "name": "tu_hybris_product_adapter" }, "provider": { "name": "sain_service" }, "verificationStatus": "never", "_links": { "pb:dashboard": { "title": "BETA: Pacts to show on the dashboard", "href": "https://wesley.pact.dius.com.au/dashboard/provider/sain_service/consumer/tu_hybris_product_adapter" }, "pb:matrix": { "title": "Matrix of pacts/verification results for tu_hybris_product_adapter and sain_service", "href": "/matrix/provider/sain_service/consumer/tu_hybris_product_adapter" }, "pb:group": { "href": "https://wesley.pact.dius.com.au/groups/tu_hybris_product_adapter" } }``` Verification has worked for this provider previously with another consumer.

bethskurrie
2020-02-05 21:18
Hi @wesleythomaswilliams

bethskurrie
2020-02-05 21:19
Is there a debug output that gives you the URL of the published verification?

bethskurrie
2020-02-05 21:19
Also, can you check the matrix page for this integration?

ryan.dens
2020-02-10 21:09
Anyone have recommendations for managing pactflow?s webhooks via an ansible playbook?

bethskurrie
2020-02-10 21:11
@ryan.dens there's an open PR to support webhook upsets that should help with this.

bethskurrie
2020-02-10 21:11
It should be released soon.

bethskurrie
2020-02-10 21:11
I don't have any direct experience with using Ansible for this however.

matt.fellows
2020-02-10 21:12
Funny, I was just talking about a terraform provider.

matt.fellows
2020-02-10 21:12
I might raise this on our product roadmap tool (forgotten the name)

matt.fellows
2020-02-10 21:13
And see what's most ueeful

matt.fellows
2020-02-10 21:13
But yes, that upsert PR will be useful

ryan.dens
2020-02-10 21:13
Awesome! We?re not super tied to ansible, just looking for a way to automate the configuration of it and will use the best tool for the job :thumbsup:

ryan.dens
2020-02-10 21:13
is this on the OSS pact_broker or just the saas pactflow offering?

matt.fellows
2020-02-10 21:14
It will be both

ryan.dens
2020-02-10 21:14
(we?re on saas, but just curious)

ryan.dens
2020-02-10 21:14
:thumbsup:

matt.fellows
2020-02-10 21:14
The APIs are compatible

matt.fellows
2020-02-10 21:15
Obviously features like secrets management won't be in OSS one

matt.fellows
2020-02-10 21:15
But eventually things like users, roles, groups, tokens should all be automatible

ryan.dens
2020-02-10 21:16
Great! Thanks Beth and Matt! Is there a PR I can watch so I know when this feature is available?

matt.fellows
2020-02-10 21:16
Out of interest, how would you plan to test the changes? I'm wondering if we need to provide a test environment as part of provisioning

matt.fellows
2020-02-10 21:16
I'll raise a public one a little later today and post here


matt.fellows
2020-02-10 21:18
Oh yes that too!

ryan.dens
2020-02-10 21:37
> Out of interest, how would you plan to test the changes? I?m wondering if we need to provide a test environment as part of provisioning I?ve been testing on our production account because currently we had relying on automated contract publishing with manual contract verification. Messing with the webhook isn?t messing with anyone?s workflows right now. I was planning on introducing some tests which utilized the https://hub.docker.com/r/dius/pact-broker image to make sure that the webhook is registered successfully

bethskurrie
2020-02-10 21:38
Use the pactfoundation/pact-broker instead. It's smaller.

ryan.dens
2020-02-10 21:38
a test environment would probably help with that, but I don?t see us investing time in the tests for this in the near future, mainly because I don?t anticipate it to be a pain point

ryan.dens
2020-02-10 21:38
@bethskurrie thank you!

ryan.dens
2020-02-10 21:38
will do

matt.fellows
2020-02-10 22:52
Thanks Ryan. That?s good feedback. As you know though, the OSS code base doesn?t have all of these administration-y features - the kinds of things you?d probably _want_ to manage as code. Webhooks are one of the exceptions obviously. So keen to see how you go over time.

matt.fellows
2020-02-10 22:52
We won?t jump into creating a sandbox environment yet, but it?s something that?s been floated around for a bit

ryan.dens
2020-02-10 22:54
Yeah, I?m not terribly worried. If we ever decide to undergo a complex change to our webhooks, we would probably just add a second webhook and see how it behaves while letting the original webhook continue its usual behavior

ryan.dens
2020-02-10 22:54
So the test environment isn?t a huge point of need for us, but an interesting idea

matt.fellows
2020-02-10 23:28
cool, makes sense


matt.fellows
2020-02-10 23:28
If you?d rather ansible, feel free to duplicate but replace Terraform with Ansible - and we?ll let the community help us prioritise

ryan.dens
2020-02-11 01:26
Great! Terraform actually works better for us generally, I was guessing there was more likely to be someone who had used an ansible module to accomplish something like this

yau.yik.shiung
2020-02-17 16:07
has joined #pactflow

ryan.dens
2020-02-18 22:39
Any schedule to be aware of for pactflow upgrading the underlying pact broker? I?m on a saas hosted pactflow pact broker. I was attempting to use some new functionality in the CLI to create-or-update a webhook via a preset uuid. I got this error: ```This version of the Pact Broker does not support creating webhooks with a specified UUID. Please upgrade your broker to >= 2.49.0 or use the create-webhook command.``` When I do a GET on my broker?s index page, I see the following header: ```x-pact-broker-version: 2.48.0```

uglyog
2020-02-18 23:54
I've upgraded Pactflow to 2.49.0 for you

ryan.dens
2020-02-19 00:11
thank you!

bethskurrie
2020-02-19 00:22
Glad someone is finding it useful already @ryan.dens

bethskurrie
2020-02-19 00:23
Let us know how you go

ryan.dens
2020-02-19 00:23
It?s a fantastic feature coming just in time for my team! I feel very lucky that it was already in progress when I started looking for it :slightly_smiling_face:

ryan.dens
2020-02-19 16:07
update > re-ran my build this morning and everything worked as expected :slightly_smiling_face: infrastructure is now merged in

ryan.dens
2020-02-19 16:13
Something I noticed was that the client always responds with the message: ```Webhook "POST http://my.ci.provider.com" created``` I might find useful for the client to give some kind of indication about whether the resource was updated or whether no change was made, but I?m unsure if that makes sense in the context of the rest of the pactflow api.

bethskurrie
2020-02-19 21:07
Thanks @ryan.dens. We could change the message based on the http status code that comes back. It'll be a 201 for created, and 200 for updated.

ryan.dens
2020-02-19 21:08
cool :thumbsup: not a big deal, if it ever becomes one I?d be happy to make the pr myself :slightly_smiling_face:

bethskurrie
2020-02-19 21:08
It should be a 2 minute job, just looking at it while I'm thinking about it

bethskurrie
2020-02-19 21:10
```action = webhook_entity.response.status == 201 ? "created" : "updated" CommandResult.new(true, "Webhook #{webhook_entity._link('self').title_or_name.inspect} #{action}")```

bethskurrie
2020-02-19 21:12
I'll update the name to use the description while I"m at it.

bethskurrie
2020-02-19 21:18
```pact-broker create-or-update-webhook https://foo.com -X POST --uuid 3aeb3ffc-0ff3-4c97-8d95-a0ef2d86ec0a --contract-content-changed --description "my webhook" Webhook "my webhook" updated```

pact501
2020-02-20 01:10
has joined #pactflow

paul.davies
2020-02-20 23:05
has joined #pactflow

paul.davies
2020-02-20 23:34
Good morning guys. I?m hoping someone (looking at @bethskurrie and @uglyog in particular) can help out with my issue. I?m having problems with verifying my tests against my pactflow broker. Publishing is fine and I can hit the verify endpoint using postman. The endpoint I?m hitting is <my broker>/pacts/provider/my-provider/consumer/my-consumer/latest and no issue. It seems that my problem is that no matter what configuration I use in my provider test (directly in java test file, or in my build.gradle), the endpoint I hit is just the broker host, not the full path, as I?ve indicated above. I can connect ok, but I don?t get my contract back, which then throws an exception in the HalClient.kt (line 277: ContentType.getOrDefault(response.entity)) as my response.entity doesn?t exist. Any ideas what I could be doing wrong? More than happy to send across my build.grade and test file if needed. Thanks!

uglyog
2020-02-21 00:39
Are you able to provide the gradle file?

bethskurrie
2020-02-21 00:45
I'm unclear about the issue!

bethskurrie
2020-02-21 00:45
Can you give a code sample?

paul.davies
2020-02-21 01:01
I?ll send you both my gradle and test files. Incidentally. My test is an async one using the latest junit5 classes. I?m guessing that the PactVerificationInvocationContextProvider has a problem resolving the consumer/provider url?. Anyway, i?ll send you these items privately shortly. Thanks for responding btw!

matt.fellows
2020-02-21 01:59
:wave: anybody using Pact or Pactflow keen on showcasing their company on our Pactflow website? We?re in the process of putting together some case studies now. If you are interested, we?ll be happy to pick up as much of the legwork as we can - e.g. interview you or send you a Q&A and then can author the post. DM me if you?re keen!

konrad.winkler
2020-02-24 03:27
has joined #pactflow

baquinteros
2020-02-26 02:49
has joined #pactflow

joel.whalen
2020-03-02 17:19
has joined #pactflow

wesleythomaswilliams
2020-03-05 13:51
I've hit a bit of a roadblock with getting Pact Flow whitelisted for access to our AWS hosted Jenkins. So I'm pondering running our own Broker inside our firewall. I just wondered if there are any differences in the features?

matt.fellows
2020-03-05 19:44
Bugger! If you're talking about Pactflow enterprise, it will have the same features as our hosted offering. The OSS broker is obviously more basic. We are considering deploying via the AWS marketplace which does have options for the use of private link into your VPC. We could also discuss how that could solve your problems if if interest?

matt.fellows
2020-03-05 19:45
P.s. I saw your other emails, we'll respond this morning (in meantime please check spam folder just in case)

2020-03-10 20:31
Notification from *Pactflow* :ghost:

kulik.olenka
2020-03-12 05:19
has joined #pactflow

bsigney
2020-03-12 23:03
has joined #pactflow

bernardoguerr
2020-03-13 11:17
Great work on the Terraform Provider @matt.fellows!

matt.fellows
2020-03-13 11:18
Feedback welcome - it?s still beta so will need some ironing out. But I have acceptance tests now that run against the real thing(s) so that gives me a level of confidence

bernardoguerr
2020-03-13 11:19
Really busy today, but going to try to give it a go this weekend! Will lyk if anything comes up!

bernardoguerr
2020-03-13 11:19
It's great to be able to automate webhooks now :slightly_smiling_face:

matt.fellows
2020-03-13 11:32
awesome, thanks!

matt.fellows
2020-03-13 11:33
I?m thinking for Webhooks, we could create some custom resources that could automate common scenarios - e.g. all of the triggers documented here: https://docs.pact.io/pact_broker/advanced_topics/webhooks/template_lib

bethskurrie
2020-03-15 09:09
Nice idea @matt.fellows

adamadiopzongo
2020-03-18 22:37
has joined #pactflow

tjones
2020-03-23 03:57
Hi hi - it would be cool if the UI had 404s or nice redirects for subsets of the path - for example, I tried to use `/overview`, but it just loaded a blank page

bethskurrie
2020-03-23 04:03
I feel like there's an issue for that somewhere!

grzegorzkrol90
2020-03-23 08:31
has joined #pactflow

vitaliy.grigoruk
2020-03-25 10:21
Hi there. It looks like `readonly` bearer token can?t be used to query /pacts/provider/{provider}/for-verification endpoint (I?m getting http 401). With read/write token everything works fine.

vitaliy.grigoruk
2020-03-25 10:23
This actually becomes an issue for us, as developers in our team have access to `readonly` token only.

matt.fellows
2020-03-25 10:54
That sounds like a bug Vitalii - thanks for picking up

bethskurrie
2020-03-25 20:20
It's our first non-write POST request! We'll update our auth code @vitaliy.grigoruk. There's actually a GET version of this endpoint, but the structured query parameters become a bit conceptually difficult to understand, so we switched it to POST with a json body.

vitaliy.grigoruk
2020-03-25 20:25
I?m fine with get, if you can give me an example how to write query params in this case.

bethskurrie
2020-03-25 22:06
@vitaliy.grigoruk the query string looks like this `consumer_version_selectors[][tag]=prod&consumer_version_selectors[][latest]=true`

bethskurrie
2020-03-25 22:07
With 2 selectors it would look like `consumer_version_selectors[][tag]=prod&consumer_version_selectors[][latest]=true&consumer_version_selectors[][tag]=master&consumer_version_selectors[][latest]=true`

bethskurrie
2020-03-25 22:10
You can use this repl to build up the query in a structured way and output the query string https://repl.it/@bethesque/PreciousMassiveTree

matt.fellows
2020-03-25 22:23
did you? choose that repl name or was that just an amazing coincidence?

bethskurrie
2020-03-25 22:23
auto generated!

matt.fellows
2020-03-25 22:23
also - that is both cool and handy

bethskurrie
2020-03-28 01:19
This fix is released @vitaliy.grigoruk

bethskurrie
2020-03-28 01:20
And the support for "all prod pacts for specific consumer" selectors.

vitaliy.grigoruk
2020-03-28 12:03
great, I?ll test it on Monday

vitaliy.grigoruk
2020-03-29 13:19
Hi there. Just found a bug in pactflow UI (webhooks editing). When I?m trying to edit existing webhooks: 1) select a webhook between `consumer` and `Provider` and click edit 2) set consumer=ALL 3) save Expected: webhook is updated Actual: webhook is not updated

bethskurrie
2020-03-29 20:52
Thanks @vitaliy.grigoruk I'll look into it.

vitaliy.grigoruk
2020-03-29 20:55
Np. Please let me know if I should use another place to report issues specific to pactflow next time :slightly_smiling_face:

bethskurrie
2020-03-29 21:50
is best, because it will get a Zendesk ticket.

bethskurrie
2020-03-29 21:55
Should have that fix released soon.

bethskurrie
2020-03-29 21:55
It was a bug in the underlying OSS code.

tjones
2020-04-01 23:52
It would also be cool if the UI tokens page had snippets for setting them into the appropriate env variables (including pact broker host name, etc)

matt.fellows
2020-04-01 23:53
nice idea!

matt.fellows
2020-04-01 23:54
We will be changing it so that a) users can have multiple tokens (with descriptions) and eventually b) tokens can be attached to the account level (so they aren?t tied to users)

tjones
2020-04-02 00:00
I like it!

lbraymusso
2020-04-02 05:40
has joined #pactflow

mrudzki
2020-04-03 14:46
has joined #pactflow

nathan.deamer
2020-04-14 13:49
We have google authentication turned on for pactflow. Is it possible to have a CI user? Without having to set up another google user?

uglyog
2020-04-14 22:25
Hi @nathan.wilson, you can have a normal user to use for your CI. Just send an email to with the details (it will have to have a working email address), and we will create it for you.

matt.fellows
2020-04-16 02:23
Next week, @uglyog @bethskurrie (http://Pactflow.io) and I will be presenting a lunch and learn session at Pactflow?s parent company (DiUS) on ?Lessons learned whilst building a SaaS business?. If you?re interested in hearing a bit about our journey, we?d love for you to join us. We?ll cover a bit about our origins, the challenges of balancing OSS and commercial interests and talk about the mistakes we?ve made along the way. The event starts at 12:30 AEST on Tuesday 21st April: * 22:30 EDT (Monday evening) * 19:30 PDT (Monday evening) * 04:30 CEST (sorry :disappointed: !) Sign up here https://docs.google.com/forms/d/e/1FAIpQLSfBb7UBVoIfW4ioOyiWTG2ha0zhOpsV5Xs_ie3py-znWYdXUw/viewform

safiyya
2020-04-16 15:50
has joined #pactflow

safiyya
2020-04-17 08:59
Is there a way to delete a contract from Pactflow ? I cant see anything in the UI or a DELETE route

wesleythomaswilliams
2020-04-17 09:14
Yes, you can do it via the API

joao.salles
2020-04-17 09:38
has joined #pactflow

matt.fellows
2020-04-17 09:44
Ah, yes. There is a delete API (see http://docs.pact.io). You can delete from the old UI and we'll add it to the new soon.

safiyya
2020-04-17 09:51
THanks @matt.fellows, I found it in the old UI!

matt.fellows
2020-04-22 00:56
For those of you who missed the session yesterday, here is the recording: https://www.youtube.com/watch?v=w50VOIRHFcQ&feature=youtu.be Thanks again for those who attended and asked us difficult questions :) If you have any feedback questions, you know where to find us!

a.smith
2020-05-07 08:19
has joined #pactflow

vitaliy.grigoruk
2020-05-27 13:25
Hi here. I?m unable to add new webhooks via new UI. Both ?create? and ?test? buttons are disabled. We?re on ?team? plan and there should be no limitation to the number of webhooks. Any ideas what?s happening?

bethskurrie
2020-05-27 22:16
You're probably missing a required field @vitaliy.grigoruk

cristian.schez
2020-06-09 11:20
has joined #pactflow

matt.fellows
2020-06-09 23:56
FYI as per the several emails over the past month, the TLS1.2 upgrade is going out this morning (night for most of you probably).

matt.fellows
2020-06-09 23:57
No outage is expected, but if you?re using Powershell or really old http clients and haven?t updated the way you interact with our systems, you may experience issues. See https://docs.pactflow.io/docs/powershell-guide

godfrey
2020-06-10 07:36
has joined #pactflow

nicholas.pleschko
2020-06-16 09:01
has joined #pactflow

garry.jeromson
2020-06-16 09:05
has joined #pactflow

michaelphi
2020-06-16 22:38
has joined #pactflow

a.smith
2020-06-17 14:06
How can I delete the example pact (`/overview/provider/Example%20API/consumer/Example%20App`) from my Pactflow organisation? I can't see anything obvious in either the UI or the HAL API browser...

uglyog
2020-06-17 22:59
You can do it from the old UI (button on the top), then select the button next to the interaction.

matt.fellows
2020-06-17 23:13
And also, you can issue an HTTP `DELETE` to pretty much any resource and bam, gone

matt.fellows
2020-06-17 23:14
But yes, we need to get the ?delete interaction? into the new UI

bethskurrie
2020-06-18 10:34
@matt.fellows is our new UI expert, I can sense it's about to be released any day.

jess.c.ho
2020-06-19 02:23
has joined #pactflow

nathan.deamer
2020-06-19 14:33
I need to view the subscription portal on pactflow - but don't seem to have access. Can anyone confirm the email of our subscription manager?

sklein
2020-06-19 19:35
has joined #pactflow

matt.fellows
2020-06-20 00:40
I've just dm'd you

2020-06-25 05:17
Notification from *Pactflow* :ghost:

ag.robinson
2020-06-27 15:42
has joined #pactflow

2020-07-07 06:31
Notification from *Pactflow* :ghost:

matt.fellows
2020-07-07 07:13
we are currently working on the design of our Teams and permissions management feature in Pactflow (see https://pactflow.io/pactflow-feature-roadmap/), and would love to get some feedback from teams and organisations about how you use Pact and how we can best ensure it fits your needs. If you?re interested in contributing to the discussion, could you please DM me and we can line up a time to chat?

2020-07-09 07:47
Notification from *Pactflow* :ghost:

tjones
2020-07-09 08:58
That?s an AWESOME feature! Nice work

bernardoguerr
2020-07-10 19:44
This is really cool!! The only thing is I still think the Stubbing suffers from the issue that you usually want to stub error codes that might not necessarily be things you want/have easily in a contract. Setting up a 500 error is not necessarily easy on the provider, so you may have some of the other parts of the contract in place to be able to verify but not that. I've seen some teams basically created dummy contracts just so they could use the pact stubbing features with it, but then they didn't publish it. To that end, maybe it would be nice to accompany this feature with another feature to be able to tag specific interactions of a contract to block verification on the provider (and make that obvious in the UI)? I think it would be a good way to enable teams to have stubs even if they don't necessarily want/have the ability to verify that yet against a provider.

matt.fellows
2020-07-13 06:31
Minor UI change that?s been requested by a few - you can now copy some useful URL templates and delete integrations (or individual pact files) directly via the UI

wesleythomaswilliams
2020-07-13 08:22
DELETE!!! :hearts:

matt.fellows
2020-07-14 04:13
Interesting, thanks for the feedback Bernado!

matt.fellows
2020-07-14 04:15
The other challenge with the current stubbing is that you may want to be able to have more flexible stubs. Right now, you have to have exact matches on each of the contract paths, but that won?t work with provider states, for example

matt.fellows
2020-07-14 10:54
June edition of the Pactflow POST is out https://mailchi.mp/pactflow.io/pactflow-post-july-2020

2020-07-17 03:46
Notification from *Pactflow* :ghost:

matthew.thomas
2020-07-17 10:29
has joined #pactflow

paul.stitt
2020-07-23 09:25
has joined #pactflow

2020-07-29 00:44
Notification from *Pactflow* :ghost:

vitaliy.grigoruk
2020-07-30 07:42
Hi there, looks like there is an issue with pactflow pact broker (our provider verification job started to fail today): ```error: INFO: Fetching pacts for api from https://******.http://pact.dius.com.au with the selection criteria: latest for tag master, latest for tag release /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/hal/entity.rb:102:in `assert_success!': Error retrieving https://******.http://pact.dius.com.au/pacts/provider/api/for-verification status=500 {"error":{"message":"An error has occurred. The details have been logged with the reference pYEwtxIazJ","reference":"pYEwtxIazJ"}} (Pact::Hal::ErrorResponseReturned) from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/hal/link.rb:65:in `post!' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb:68:in `pacts_for_verification_entity' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb:54:in `pacts_for_verification' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb:39:in `call' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb:33:in `call' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/pact_broker.rb:18:in `fetch_pact_uris_for_verification' from /app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.84.0/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.30.1/lib/pact/provider_verifier/aggregate_pact_configs.rb:45:in `pacts_for_verification'```

matt.fellows
2020-07-30 08:00
Thanks @vitaliy.grigoruk, we?ll take a look now

vitaliy.grigoruk
2020-07-30 08:01
I?ve also emailed . Just ignore that request as a duplicate pls )

matt.fellows
2020-07-30 08:03
thanks I saw that, no that?s great - I?ll track it there for posterity

davidmolinero.com
2020-07-30 08:10
the same issue is happening to me

matt.fellows
2020-07-30 08:16
Thanks David and sorry folks. There was a recent dark launch with some preparations for our teams and permissions feature

matt.fellows
2020-07-30 08:17
I can reproduce it also

dom.udall
2020-07-30 08:17
has joined #pactflow

matt.fellows
2020-07-30 08:44
Guys can you please check now?

dom.udall
2020-07-30 08:46
Working for us now :smiley:

vitaliy.grigoruk
2020-07-30 09:38
works for us also!

vitaliy.grigoruk
2020-07-30 09:38
thanks, @matt.fellows!

2020-08-11 01:46
Notification from *Pactflow* :ghost:

mcruzdrake
2020-08-19 13:09
has joined #pactflow

denitsa.kulezich
2020-08-19 13:31
has joined #pactflow

denitsa.kulezich
2020-08-19 13:41
Hi, we have an issue with Pactflow: when trying to delete a given contract is says: Unable to delete resource, as it was not found (the API returned 404). The contract exists and is visible when I query it in HAL browser.

denitsa.kulezich
2020-08-19 13:41
This happens with more than one of our contracts.

matt.fellows
2020-08-19 22:53
I need to check the code, I think you'd get a 403 if you tried to delete with a read only token. How are you trying to delete it? Using API, UI or HAL browser?

matt.fellows
2020-08-19 22:53
Feel free to DM us with your acct details and we can check logs etc

iannsantos8
2020-08-20 18:23
has joined #pactflow

heytaco
2020-08-25 03:57
has joined #pactflow

heytaco
2020-08-25 03:57
Hi there! My name is HeyTaco!, and you can use me to give people tacos to show your appreciation. My tacos will spread joy through Slack!

aforeman
2020-08-26 23:26
has joined #pactflow

robert.strehli
2020-08-27 14:40
has joined #pactflow

alecgerona
2020-09-01 06:04
has joined #pactflow

alecgerona
2020-09-01 06:05
Is there really no per developer pricing on pactflow? :disappointed:

matt.fellows
2020-09-01 06:14
Can you elaborate Alec? Happy to discuss/work with your needs

alecgerona
2020-09-01 06:20
Looking into using Pactflow for our company seeing that setting up pact-broker, with the various tools it'd need to work (CI changes, hack to make verifiers or work, setting up stub server) might be a bit too much to maintain going forward.

alecgerona
2020-09-01 06:21
So I saw the pricing is at $99 for 10 devs. And a big jump to more than double the price for 25. We're not a big company by any means and the price might be too steep going in.

carlos.silva
2020-09-02 15:06
has joined #pactflow

lewis.prescott
2020-09-03 12:49
has joined #pactflow

2020-09-04 02:56
Notification from *Pactflow* :ghost:

2020-09-04 03:22
Notification from *Pactflow* :ghost:

2020-09-04 03:22
Notification from *Pactflow* :ghost:

saurabhapd
2020-09-17 15:27
has joined #pactflow

sarajcarbajal
2020-09-17 20:31
has joined #pactflow

2020-09-22 07:39
Notification from *Pactflow* :ghost:

scwang
2020-09-23 05:26
has joined #pactflow

scwang
2020-09-23 05:27
I am evaluating pactflow by creating a webhook for slack, but the webhooks fails to executed

scwang
2020-09-23 05:28
@matt.fellows any ideas matt ?

bethskurrie
2020-09-23 05:29
You got a 302 redirect.

bethskurrie
2020-09-23 05:29
There are docs for creating webhooks here that might help


scwang
2020-09-23 05:31
I did not get why I am getting 302 redirect ?

bethskurrie
2020-09-23 05:32
Neither do I!

bethskurrie
2020-09-23 05:32
Have you checked the slack API docs?

uglyog
2020-09-23 05:33
That's to do with the slack APIs, can you try that request in something like Postman?

scwang
2020-09-23 05:33
I was using curl and it works

scwang
2020-09-23 05:33
do I need to test using postman?

bethskurrie
2020-09-23 05:33
no, if it works in curl, it should work in Pactflow

bethskurrie
2020-09-23 05:34
can you post a screenshot of your webhook and the command in your curl (without auth tokens)

bethskurrie
2020-09-23 05:34
302 redirect usually happens when you are hitting a UI, not an API, which hints to me that you haven't set the content type accept header properly.

uglyog
2020-09-23 05:35
The content type is wrong (as Beth said)

uglyog
2020-09-23 05:36
I should be `application/json`

scwang
2020-09-23 05:41
this is the curl I am using ` ```curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/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```

scwang
2020-09-23 05:41
webhook ` ```{ "request": { "method": "POST", "url": "https://hooks.slack.com/services/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", "body": { "channel": "automation", "username": "Quality Team Bot", "text": "a new pact file is created", "icon_emoji": ":ghost:" } } }```

bethskurrie
2020-09-23 05:42
Where are you getting that JSON from?

bethskurrie
2020-09-23 05:42
If you're using the Pactflow UI, that should all be in a form.

bethskurrie
2020-09-23 05:42
That's the JSON for using the Pactflow API.

scwang
2020-09-23 05:43
I am following the doc

bethskurrie
2020-09-23 05:43
that's for using the API.


bethskurrie
2020-09-23 05:44
Here are the docs for the UI

scwang
2020-09-23 05:44
I need to use the UI ?

bethskurrie
2020-09-23 05:44
You're already using the UI.

bethskurrie
2020-09-23 05:44
You posted a screenshot

scwang
2020-09-23 05:45
I used the api to create the webhook

scwang
2020-09-23 05:45
I got confused

bethskurrie
2020-09-23 05:45
can you just show me a screenshot of the webhook as it looks in the UI please?

scwang
2020-09-23 05:46
I created this by using pb:webhooks

bethskurrie
2020-09-23 05:46
Ok, in the headers put: ```Content-Type: application/json```

bethskurrie
2020-09-23 05:47
I'm deleting the image because it had a token in the URL

bethskurrie
2020-09-23 05:49
it's possible that that example is out of date as well - I know slack's notification API changed sometime in the last few years.

scwang
2020-09-23 05:50
it does not work

bethskurrie
2020-09-23 05:50
logs please

scwang
2020-09-23 05:50
same 302


bethskurrie
2020-09-23 05:52
I'll see if I can get one working in our account

scwang
2020-09-23 05:53
thanks

scwang
2020-09-23 05:56
I am wondering are you going to do it now? if so, I will be stay on line

bethskurrie
2020-09-23 05:56
yes, i'm doing it now

bethskurrie
2020-09-23 05:57
well, I've replicated the issue! I can do the request with curl, but I get a 302 in Pactflow.


scwang
2020-09-23 06:00
is it a bug ?

bethskurrie
2020-09-23 06:00
the content types don't seem to make a difference

bethskurrie
2020-09-23 06:00
it could be a bug. I'll look into it.

bethskurrie
2020-09-23 06:05
If you send an email to I'll be able to let you know when we've identified the cause and fixed it if necessary

scwang
2020-09-23 06:06
cool will do

scwang
2020-09-23 06:10
I have sent you an email, thanks for your help

bethskurrie
2020-09-23 06:11
No worries.

yann.courtel
2020-09-25 12:21
has joined #pactflow

tati.shep
2020-09-30 06:55
has joined #pactflow

scwang
2020-10-01 01:03
I am evaluating pactflow and cypress, I am wondering how I can upload pact file from within Cpress tests ? is there any plugin avaliable

scwang
2020-10-01 01:03
I am ok to any open source and commerical plugins of pact cypress integration

uglyog
2020-10-01 01:06
The Pact files can all be uploaded after the test run. This doesn't have to have anything to do with Cypress. You can use the standard Pact tools to do that.

scwang
2020-10-01 01:10
thanks , I am wondering can I call pact API from cypress and generate pact files ?

uglyog
2020-10-01 01:15
You don't need to call anything, the pact file will be generated if the test succeeds.

scwang
2020-10-01 01:18
sorry I did not get this , I have a bunch of cypress tests as my consumers , how I can make cypress generate pact files ?

uglyog
2020-10-01 01:19
Have you added Pact to the Cypress tests?

scwang
2020-10-01 01:21
Not yet, Cypress does not allow write files into disks

scwang
2020-10-01 01:22
do I need a plugin to do that ?

uglyog
2020-10-01 01:24
There is no plugin, yet. Cypress has a task mechanism that allows you to execute code on the Node environment. See https://github.com/pactflow/example-consumer-cypress for an example

scwang
2020-10-01 01:25
thanks

scwang
2020-10-01 01:58
I am wondering do you provide any training services ?

uglyog
2020-10-01 02:01
@matt.fellows :point_up:

matt.fellows
2020-10-01 03:34
:wave:

matt.fellows
2020-10-01 03:34
I saw you booked a meeting to chat tomorrow @scwang , i?ll ping you offline to get a bit more info

nazar.khmil
2020-10-05 10:34
has joined #pactflow

xandebianchi
2020-10-05 13:05
has joined #pactflow

xandebianchi
2020-10-05 13:12
Hi guys! Could you help me please ? I?m starting with http://pact.io and pactflow, using Android, but it?s a generic doubt. I could create the classes and unit test, and generate the pact file. I published it using Gradle task. 1. My doubt is about the Provider. Do I need to create the provider part or this is a task for the Microservices responsibles? 2. Also, how can I test to Verify a Pact? Where can I add the URL from Microservice for pactflow to analyze the results ? 3. For pactflow to execute correctly, do I need to put the tasks in CI ?

dorin.enache
2020-10-05 15:01
has joined #pactflow

xandebianchi
2020-10-05 16:17
Is it possible to publish verification through Pactflow simulating the Provider ?

bethskurrie
2020-10-05 23:31
Hi @xandebianchi. I recommend you watch this animation https://pactflow.io/how-pact-works/#slide-1 and read this document https://docs.pact.io/pact_nirvana

bethskurrie
2020-10-05 23:32
Also, if you have time, this workshop should make everything clear https://docs.pactflow.io/docs/workshops/ci-cd/

bethskurrie
2020-10-05 23:32
A verification should be against a real provider - otherwise, there's no point to it.

bethskurrie
2020-10-05 23:33
> Do I need to create the provider part or this is a task for the Microservices responsibles? Who creates the provider is up to your organisation, and nothing to do with Pact.

bethskurrie
2020-10-05 23:34
> For pactflow to execute correctly, do I need to put the tasks in CI ? Yes.

bethskurrie
2020-10-05 23:34
You'll find instructions on how to set up your CI in both the "effective pact set up guide" and in the workshop

matt.fellows
2020-10-05 23:35
> 1. My doubt is about the Provider. Do I need to create the provider part or this is a task for the Microservices responsibles? correct, the team looking after the microservice needs to verify your pact on the provider side. What language are they doing it in?

michael_james
2020-10-06 10:02
has joined #pactflow

ledinhcuong99
2020-10-06 12:53
has joined #pactflow

phil.endsley
2020-10-07 03:40
has joined #pactflow

phil.endsley
2020-10-07 03:43
Is there a page somewhere that outlines differences between pactflow and oss? Looking for premium features, and other stuff to sell me on "why should we pay for this" (I don't make that decision, but I can get it to the people who do :slightly_smiling_face: )


bethskurrie
2020-10-07 03:44
and


bethskurrie
2020-10-07 03:45
At the moment, the differences are mostly around user management, but the very next thing off the rank is to start focussing on provider driven workflows, and making it easier to get started with contract testing.

bethskurrie
2020-10-07 03:45
Opening up Pactflow to different types of contracts (eg. OAS)

dothetan.040490
2020-10-07 09:14
has joined #pactflow

dagostino.remy
2020-10-07 23:03
has joined #pactflow

abhi.nandan
2020-10-08 06:38
has joined #pactflow

przemyslaw.dabrowski
2020-10-08 12:36
has joined #pactflow

emiliano.righi
2020-10-08 13:25
has joined #pactflow

cariaga.bh
2020-10-08 21:03
has joined #pactflow

campellcl
2020-10-09 00:06
has joined #pactflow

campellcl
2020-10-09 00:15
Hey all, I was trying to get started with the http://pactflow.io pact broker but I am about to give up and host my own non-commercialized version in Docker. I keep getting `HTTP 405 "Method Not Allowed for URL"` when trying to issue either POST or PUT requests to our PactFlow broker endpoint. I am including the bearer token in the HTTP headers with the call, and am using OpenSSL > v1.0.0 which supports TLS v1.2. Does anyone know why I would continuously get this response when attempting to publish a pact to PactFlow? I can't find anything in the docs, except for the bit on using TLS v1.2. I am using Python 3.8 and the `requests` module to handle the HTTP communication. I haven't done any setup steps in PactFlow, except for copying the authorization credentials and the "pact template URL" in order to attempt to publish a pact to the "pact template URL".

matt.fellows
2020-10-09 00:17
If you?re getting a `405` then you?ll get the same on the OSS broker (the underlying code is the same), so it?s something else

matt.fellows
2020-10-09 00:17
If you can please share the request, i?m sure we can get to the bottom of it

matt.fellows
2020-10-09 00:17
(redact any tokens/private stuff, obviously)

matt.fellows
2020-10-09 00:17
As a straight up guess, I bet the path is wrong


campellcl
2020-10-09 00:21
@matt.fellows Sure, let me grab it. Yup, of course! Thanks. The path probably is wrong, I didn't have a clear idea from the docs what the appropriate path was, if not the "pact template URL" available via the GUI. Do you need to register the Provider or Consumer prior to the PUT call to the broker? Or does the initial PUT call register a new Provider and/or Consumer?

matt.fellows
2020-10-09 00:21
no probs. And yes, it will create them if they don?t already exist

campellcl
2020-10-09 00:42
@matt.fellows Turns out it is somewhat non-trivial to get the formatted HTTP request object from `requests`. Sorry about that. Here is a string version that is identical except for the carriage returns and newline escape characters. But of course, that shouldn't matter for this. I replaced secret info with `<some_text>` , and the `b\'` is serialized python for `b'` which is a flag representing the start of the binary data which contains the JSON serialized pact. ```'-----------START-----------\nPOST https://<our_org>.http://pactflow.io/pacts/provider/TaskOrchestratorV2/consumer/JobManagementServiceV3/latest/dev\r\nContent-Type: application/json\r\nAuthorization: Bearer <bearer_token>\r\nContent-Length: 1016\r\n\r\nb\'{"consumer": {"name": "TaskOrchestrationV2"}, "provider": {"name": "JobManagementServiceV3"}, "interactions": [{"description": "an initialization request from the TaskOrchestrator", "providerState": "An existing JobConfig_0 item", "request": {"method": "post", "path": "/"}, "response": {"status": 200, "headers": {}, "body": {"Service": "JobManagementServiceV3", "Id": "fc763eba-0905-41c5-a27f-3934ab26786c", "Result": "Success", "Result_Params": {"StateMachine_Event": {"State": {"State_UUID": "fc763eba-0905-41c5-a27f-3934ab26786c"}, "Event": {"Event_Name": "Success", "Event_Context": {"Job_Id": "Job_0"}}, "Event_Source": {"ARN": "someArn"}}}}, "matchingRules": {"$.body": {"match": "type"}, "$.body.Id": {"match": "regex", "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"}, "$.body.Result_Params.StateMachine_Event.State.State_UUID": {"match": "regex", "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"}}}}], "metadata": {"pactSpecification": {"version": "2.0.0"}}}\'' ```

campellcl
2020-10-09 00:44
@matt.fellows The response I get is: ``` requests.exceptions.HTTPError: 405 Client Error: Method Not Allowed for url: https://<our_org>.http://pactflow.io/pacts/provider/TaskOrchestratorV2/consumer/JobManagementServiceV3/latest/dev```

matt.fellows
2020-10-09 00:45
OK cool yep, the format of the URL is wrong. It should be: ```/pacts/provider/PROVIDER/consumer/CONSUMER/version/CONSUMER_VERSION_NUMBER```

matt.fellows
2020-10-09 00:45
Change format to this: ```/pacts/provider/TaskOrchestratorV2/consumer/JobManagementServiceV3/version/CONSUMER_VERSION_NUMBER```

matt.fellows
2020-10-09 00:46
Personally, I?d just use https://docs.pact.io/implementation_guides/cli to publish pacts (and run other useful pact commands)

campellcl
2020-10-09 00:49
Then why does the http://PactFlow.io broker produce the following URL when you click "Copy pact template URL": ```https://<our_org>.http://pactflow.io/pacts/provider/Example API/consumer/Example App/latest/%3Cinsert%20tag%20here%3E``` That url is ```/pacts/provider/PROVIDER/consumer/CONSUMER/latest/SOME_TAG``` not: ```/pacts/provider/PROVIDER/consumer/CONSUMER/version/CONSUMER_VERSION_NUMBER``` I get that you can manually specify a version number if you don't want to use the `latest`. Does `latest` only work if you already have registered a Pact?

bethskurrie
2020-10-09 00:50
latest is just like "head"

bethskurrie
2020-10-09 00:51
it just returns whatever is latest. but you don't publish to latest (unlike docker). you publish with a specific consumer version.


bethskurrie
2020-10-09 00:52
There is a bug in that template URL that we need to fix, thanks for reminding me.


bethskurrie
2020-10-09 00:54
You'll have the same issue with the OSS broker. The client code is wrong.

bethskurrie
2020-10-09 00:57
As Matt said, it's best to use the pact-cli to publish, as there are some subtleties around publishing that will not work as expected unless you do it right.

campellcl
2020-10-09 00:57
You mean the display of the encoded `%20` instead of the space character ` `? Eh, most devs can figure that one out haha. But sure, I'm glad to help. I will give those documents you linked a proper read. I only skimmed it originally. Thank you for mentioning them.

bethskurrie
2020-10-09 00:57
Those URLs are no use to you when publishing pacts.


bethskurrie
2020-10-09 00:59
Many implementations have a native interface for publishing, but they're mostly calling that same code under the hood.

campellcl
2020-10-09 01:01
I need to read more about the integration with CI/CD pipelines (we aren't quite there yet). But right now we are doing the publishing from the code that generates the actual pact file. Hence, not using the CLI. Eventually a CI/CD system will be driving the scripts that create and upload the pacts automatically, when the content of the pact changes. Although we could get the CI/CD system to do it via CLI if need be.

bethskurrie
2020-10-09 01:01
you were using python, yeah?

campellcl
2020-10-09 01:01
Yup!

bethskurrie
2020-10-09 01:02
i'm pretty sure there's some publishing code in the pact python library

bethskurrie
2020-10-09 01:02
were you using that or trying to roll you own?


bethskurrie
2020-10-09 01:02
oooh, don't copy that

bethskurrie
2020-10-09 01:02
I need to get someone to remove that

campellcl
2020-10-09 01:02
That is what I was using for reference, except for the HTTP Auth, because you all use tokens instead.

campellcl
2020-10-09 01:03
What's bad about the above example?

bethskurrie
2020-10-09 01:03
let me find an example

bethskurrie
2020-10-09 01:03
the rest of the code is probably fine, but don't manually upload the pact

campellcl
2020-10-09 01:04
Ah, I figured that is what you are supposed to do. Generate the pact file, then upload it to http://PactFlow.io (or a custom Pact Broker).


bethskurrie
2020-10-09 01:06
Someone was working on this. I thought it was done.

bethskurrie
2020-10-09 01:06
Typically, you generate a pact and use the CLI or one of the native language wrapper interfaces to publish. I'm not sure why python hasn't done this yet.

bethskurrie
2020-10-09 01:08
Let me know which route you decide to go down. If you must use the API directly, I'll have to explain how to create the tags. But it would be a lot simpler to use the cli. If you're not using docker, you can also use this https://docs.pact.io/implementation_guides/cli#pact-ruby-standalone

bethskurrie
2020-10-09 01:09
this is what the python tool wraps anyway. you already have it running on your machine now.

campellcl
2020-10-09 01:09
Yeah, if you google "pact python publish pact" or some combination of that, that `pact-foundation` example is the first to come up. The docs do recommend using a CLI though. But normally that is for ease of user experience (e.g AWS CLI)

bethskurrie
2020-10-09 01:10
I had a feeling the python interface was mostly done and just needed to be tweaked and documented.

campellcl
2020-10-09 01:15
I would be using Docker. Let me read up on how you recommend doing the CI/CD integration. I saw you have some documentation on it, but I haven't read it yet. So I won't bother you with questions you have already answered in those docs. We would be hosting the Pact broker in a dockerized container.

bethskurrie
2020-10-09 01:15
the cli in docker is different from the pact broker in docker though.

bethskurrie
2020-10-09 01:16
cli runs in the build

bethskurrie
2020-10-09 01:16
the pact broker runs as a hosted service outside your CI

bethskurrie
2020-10-09 01:16
sorry to throw lots of docs at you but here's the guide to setting up CI https://docs.pact.io/pact_nirvana

campellcl
2020-10-09 01:18
Ah, right. To clarify, I mean we will be running the pact broker and pact verifier in Docker. Right now, with my limited knowledge of how this integrates into a CI/CD process... I believe our CI/CD system would also be executing the code that generates the pacts, and uploading or sharing them with the Pact Broker. Which means the CI/CD system would have to run the CLI in order to generate the pacts. If I can't use the native API to do it, which still doesn't appear to work with an arbitrary UUID for a version tag.

campellcl
2020-10-09 01:19
And our CI/CD system is Dockerized.

campellcl
2020-10-09 01:33
@bethskurrie So, we are already using Dockerized Jenkins, which in turn is running Dockerized build agents to mimic deployment environments that are different from our local machines. If we were to use the CLI (which is provided as a Docker container) we would need our Dockerized build agents to access Docker in order to spin up the CLI Docker container. That is three levels of Docker inception, which I would rather avoid. Two is bad enough as it is.

campellcl
2020-10-09 01:33
Can we really not just issue POSTS to the API without the dockerized CLI?

bethskurrie
2020-10-09 01:44
You can.

bethskurrie
2020-10-09 01:44
You just need to know what you're doing.

bethskurrie
2020-10-09 01:44
It's a PUT btw.

bethskurrie
2020-10-09 01:46
Just make sure you create the tag first, then publish the pact.

bethskurrie
2020-10-09 01:48
It's a PUT to `/pacticipants/{pacticipant}/versions/{version}/tags/{tag}` with a content-type of `application/json` (but you can use an empty body).

bethskurrie
2020-10-09 01:50
You mentioned that you were were planning on hosting your own Pact Broker. Would you mind sharing what factors make that a preferable option to Pactflow for you?

matt.fellows
2020-10-09 02:12
> If we were to use the CLI (which is provided as a Docker container) we would need our Dockerized build agents to access Docker in order to spin up the CLI Docker container. That is three levels of Docker inception, which I would rather avoid. Two is bad enough as it is. Yes, that sounds painful. The CLI is also available as a standalone as Beth mentions. It is actually packaged by the Python implementation under the hood already - so if pact-python is installed, you already have it. I can?t recall exactly where it gets stored, but something like a `find <path to where python puts libs> -name pact-broker` should get you close enough

campellcl
2020-10-09 02:20
Sure! Primarily, this experience haha. Not being able to just copy an endpoint URL, swap out the version number, and publish a pact file to the broker. PactFlow is advertised as plug-and-play to be able to test out Pact without having to host our own broker. It hasn't been plug-and-play at all. Maybe it is for people who know what they are doing, but not for someone who is new to Pact. I read all the Pact docs (and have a vague concept of how it all should work), I have that python example I linked, and that's all the prior knowledge I've got. I expect a bit more hand holding from a plug-and-play solution, and less passing the buck to the original Pact documentation. The Pact documentation doesn't tell me how to get up and running with PactFlow, it tells me the role that PactFlow is supposed to fulfill in the Pact ecosystem. You and Matt were very helpful on here, but I would never have gathered that I was not supposed to be issuing a PUT call to the API directly, at that template link you can copy out of the PactFlow GUI. I don't want to have to know everything about pact versioning, and tagging intricacies, from the original docs to use a supposedly turn-key solution such as the PactFlow broker. So having an interactive getting started guide is really a necessity. Right now PactFlow just kinda dumps you on the dashboard with a few sample pacts and says: good luck! How about explaining how to publish a pact to the broker, and how to create a tag, and if the provider and consumer need to exist prior to publishing a pact, and the template URL that should be used as a default URL to publish an example Pact to in PactFlow. That is all useful information for getting up and running in PactFlow that is not really anywhere to be found. We don't really have access to the error logs of the PactFlow broker, and can't really figure out why it keeps just HTTP 405-ing all the requests, even with the changes Matt recommended. If it was our own hosted version, we would be able to debug the logs of the OSS broker much easier (I would presume).

campellcl
2020-10-09 02:22
So basically it comes down to, not enough visibility into the logs, not being turn-key enough for a productized solution, and not enough materials explaining how to actually get up and running with PactFlow irrespective of Pact overall. If I have to read all the original Pact docs and understand them to this degree, I might as well just deploy my own broker.

campellcl
2020-10-09 02:29
I would expect a getting started walkthrough on PactFlow which references the original Pact documentation at certain points. I'm not opposed to documentation reading. It's just way more documentation reading than I would like for what is advertised as a turn-key solution. At that point, it's no longer plug-and-play. I've read all the docs several times to get the thing almost working (it still doesn't work yet). So there isn't really a benefit to using a commercialized solution, when a prerequisite is understanding enough of Pact itself, that the benefit in terms of decreased implementation time and ease of use is negligible.

bethskurrie
2020-10-09 02:30
Thanks for sharing.

bethskurrie
2020-10-09 02:30
Improving our onboarding process is actually something we're working on at the moment, and your feedback is very relevant.

bethskurrie
2020-10-09 02:33
Have you seen the example python consumer and provider btw? https://github.com/pactflow/example-consumer-python

bethskurrie
2020-10-09 02:34
Would that have helped? We're considering capturing the relevant technologies at sign up so we can send out the example for the relevant languages.

campellcl
2020-10-09 02:36
Of course! Happy to help any way I can. Thank you to both you and Matt for taking the time to help. It's well past the end of the working day here, so I'm going to pick this up tomorrow. We are not against using PactFlow, we will still probably keep at it, and try and get it working again tomorrow. We just have a tight dev schedule, and if a turn-key solution doesn't get up and running within a certain window of dev time, we move on to the next approach (e.g. hosting it ourselves). Otherwise, we will end up with no contract testing infrastructure at all.

campellcl
2020-10-09 02:37
I'm not sure I had seen that example, I've made note of it to reference tomorrow, that does look helpful. The main one I had seen was https://github.com/pact-foundation/pact-python/tree/master/examples/e2e

bethskurrie
2020-10-09 02:38
There are a lot of docs and code spread throughout the OSS and commercial product, so it's hard to know where to find them.

bethskurrie
2020-10-09 02:38
Let us know what you think of the example tomorrow.

campellcl
2020-10-09 02:41
Yeah, agreed. Which is why having some PactFlow specific documentation (even if it is just appropriately placed links to other docs in a getting-started kind of ordering) would be very helpful. We were looking at https://github.com/reecetech/pactman as well.

campellcl
2020-10-09 02:41
Will do! Thank you!

bethskurrie
2020-10-09 02:41
Ah pactman.

bethskurrie
2020-10-09 02:42
Be aware that it's not officially supported by the pact-foundation team.

bethskurrie
2020-10-09 02:42
The joys of OSS. You can't stop people creating and publishing their own solutions and then walking away from them.

campellcl
2020-10-09 02:42
Yeah, we noticed that. Which is why we went with your version, after seeing it was/is actively maintained.

matt.fellows
2020-10-09 03:08
I know you?re probably off to bed Chris, but thanks heaps for this feedback - it?s something we know and are (painfully) aware of, but getting honest feedback like this is really appreciated!!

matt.fellows
2020-10-09 03:08
:pray:

aaron.ramirez
2020-10-09 07:46
has joined #pactflow

elenitsaa043
2020-10-09 10:00
has joined #pactflow

adriangabrieloros
2020-10-09 11:05
has joined #pactflow

ruth
2020-10-09 13:14
has joined #pactflow

ruth
2020-10-09 13:14
This is probably a realy silly question, but I am confused on how to download schema from pactflow to the provider. I?ve been googling it and most articles I found says I need to do it but doesnt give me guidance on how.

ruth
2020-10-09 13:16
https://pactflow.io/blog/contract-testing-using-json-schemas-and-open-api-part-3/ ^^ was reading the blog post and realized there is a difference between verification and testing. I want to download the schema so that I can test against it in the provider to make sure that we are still doing whats expected by the consumer.

wesleythomaswilliams
2020-10-09 13:18
In our use of Pact Flow with Java, we provide details about the PactBroker at the top of the Provider test class: ```@PactBroker( host = "${pact.broker.host}", scheme = "https", port = "443", authentication = @PactBrokerAuth(token = "${pact.broker.token}"))```

ruth
2020-10-09 13:19
ah okay !

wesleythomaswilliams
2020-10-09 13:21
And we setup values in our maven pom: ``` <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <pact.broker.host>http://MYTEAM.pact.dius.com.au</pact.broker.host> <pact.broker.token>MYTOKENGOESHERE</pact.broker.token> <pact.verifier.publishResults>false</pact.verifier.publishResults> <pact.provider.version>${pact.provider.version}</pact.provider.version> <pact.provider.version.trimSnapshot>false</pact.provider.version.trimSnapshot> </systemPropertyVariables> </configuration> </plugin>```

ruth
2020-10-09 13:23
Thank you!

wesleythomaswilliams
2020-10-09 13:25
In our jenkins pipeline, we then do this: ```' mvn -B -f pom.xml test ' ' -Dpact.provider.version=' + env.GIT_COMMIT + ' -Dpact.verifier.publishResults=true' + ' -Dpact.provider.tag=' + env.GIT_BRANCH``` How you tag and version things will probably be different, but you can see that when we execute our provider tests in our build process we override the default `publishResults` flag to set it to true. We default it to false so we don't accidentally publish results on local builds.

wesleythomaswilliams
2020-10-09 13:26
Btw, not a silly question. This stuff twisted my head in knots for quite a while.

sh.ilgam_pact
2020-10-11 16:13
has joined #pactflow

anastasiia.bielik
2020-10-12 11:13
has joined #pactflow

deepika.krishnakumar
2020-10-12 15:03
has joined #pactflow

anbansal27
2020-10-12 23:02
has joined #pactflow

prabhakar.thippa
2020-10-13 04:58
has joined #pactflow

giadinhluong
2020-10-13 06:24
has joined #pactflow

pavank
2020-10-13 08:41
has joined #pactflow

stephane.meng
2020-10-13 09:06
has joined #pactflow

abirlal.bose
2020-10-13 09:45
has joined #pactflow

mateusz.mrzyglod
2020-10-14 09:32
has joined #pactflow

cathleen.yuan
2020-10-14 11:16
has joined #pactflow

ramana.jaladurgam
2020-10-14 16:10
has joined #pactflow

alik.berezovsky
2020-10-14 18:38
has joined #pactflow

a.robecke
2020-10-14 19:24
has joined #pactflow

mikahchapman
2020-10-14 21:47
has joined #pactflow

hem_kec
2020-10-15 00:44
has joined #pactflow

marco.cordeiro
2020-10-15 10:54
has joined #pactflow

betty.he
2020-10-15 14:32
has joined #pactflow

tamer
2020-10-16 09:08
has joined #pactflow

mario.gioiosa
2020-10-16 18:57
has joined #pactflow

lior.baber
2020-10-19 07:33
has joined #pactflow

jeffbdye
2020-10-19 17:10
has joined #pactflow

jace
2020-10-19 19:22
has joined #pactflow

tritorto
2020-10-20 05:40
Hey guys, just a question - do you support MFA with pactflow logins at all or plan to?

matt.fellows
2020-10-20 05:45
It?s not on our roadmap, but is possible.

matt.fellows
2020-10-20 05:46
Did you want to DM me offline (or talk here) about your needs/context?

almaak
2020-10-20 09:35
has joined #pactflow

andra.moraru
2020-10-20 14:13
has joined #pactflow

camila.coder91
2020-10-20 17:06
has joined #pactflow

julzelements
2020-10-21 05:25
has joined #pactflow

kapil.mathur
2020-10-21 06:40
has joined #pactflow

mark.hudson
2020-10-21 10:45
has joined #pactflow

sklein
2020-10-21 14:11
What's the easiest way in the UI to get the url that would fire from the webhook integration for a newly added pact? I'm putting together an internal tutorial/walkthrough and am struggling to find an easy way to find this.

sklein
2020-10-21 15:06
FYIses... I know that I can grab the url from the pact overview screen, but I noticed that the url sent via the webhook is actually different (looks like its using an actual id for the pact)

cluu
2020-10-21 17:16
has joined #pactflow

camila.campos
2020-10-21 21:35
has joined #pactflow

longlevan
2020-10-22 09:15
has joined #pactflow

justin.garfield
2020-10-22 16:15
has joined #pactflow

guppy0356.nakira
2020-10-23 00:34
has joined #pactflow

bethskurrie
2020-10-23 05:57
You need to use the templated one @sklein

bethskurrie
2020-10-23 05:57
`${pactbroker.pactUrl}` . You can't hardcode that URL or the same pact will be verified each time!

bethskurrie
2020-10-23 05:57
If you click on the ? mark next to the template body, you'll see a list of available template parameters.


bethskurrie
2020-10-23 05:59
This page needs to be moved, it's too hard to find where it is: https://docs.pact.io/pact_broker/advanced_topics/api_docs/webhooks

sklein
2020-10-23 13:28
Understood about the template. This was explicitly for use in a demo just to simulate the webhook in Jenkins. My question was more around what Id is being used here. For example, this is the url sent in the webhook `https://my-company.pactflow.io/pacts/provider/example-python-provider/consumer/example-python-consumer/pact-version/3751957d917d2b51a1e24c1ab8918d6c4d328fd5/metadata/Y29uc3VtZXJfdmVyc2lvbl9udW1iZXI9NjQ0NjdhYzM4MGNmJmNvbnN1bWVyX3ZlcnNpb25fdGFnc1tdPWZlYXR1cmUlMkZwcm9kdWN0LXRlY2gtZGVtbw` The version listed here is `3751957d917d2b51a1e24c1ab8918d6c4d328fd5` but the actual tagged version of this contract is `64467ac380cf` . I was just trying to understand why the difference in version exists.

ercalbwar
2020-10-24 19:24
has joined #pactflow

andrewshtamburg
2020-10-25 13:04
has joined #pactflow

siad.ardroumli
2020-10-25 18:16
has joined #pactflow

srikanthpmailid
2020-10-26 01:02
has joined #pactflow

photesthesis_geospiza
2020-10-26 15:10
has joined #pactflow

bethskurrie
2020-10-27 07:57
@sklein one is the *consumer* version and one is the *pact* content version.

bethskurrie
2020-10-27 07:58
The consumer version is what it gets published with. You can read about the URLS here https://docs.pact.io/pact_broker/publishing_and_retrieving_pacts

bethskurrie
2020-10-27 07:59
The version that gets used in the webhook is the *pact* version (that is, the sha of the underlying pact JSON content).

bethskurrie
2020-10-27 08:00
If you're just trying to simulate a webhook in jenkins, you can just use the same URL that the pact gets published with.

bethskurrie
2020-10-27 08:03
The easiest way to get the URL is to click on the "view pact" button, and then copy the URL in the browser, discarding any query parameters.

bethskurrie
2020-10-27 08:11
Pactflow users - I'm after a bit of feedback regarding the use of the API tokens. Most companies start using a Pactflow account in "evaluation" mode, by doing a proof of concept, and then transition into "production" mode, when they integrate it for real into their CI/CD pipelines. If this is a reflection of your experience, can you please tell me if anyone (apart from the CI/CD user) uses the *write* token from their local machines once in "production" mode? If the evaluation -> production model I described doesn't match how you used it, how did your experience differ?

tjones
2020-10-27 08:23
this isn't actually a direct answer to the question, but I do remember it being a pain to share the tokens around. I just realised that what I *really* want is the ability to add ssh keys to pactflow, and have that just work with all the tooling. Bonus points if Pactflow can read my ssh keys from github when I sign in. I also realise that this would be a substantial change to the way things work right now.

tjones
2020-10-27 08:23
But it *is* all possible

tjones
2020-10-27 08:27
The more I think about this, the more I think it's a good idea. Authorisation would "just work" in many cases. Also it would be fun to implement, which is definitely bonus points

bethskurrie
2020-10-27 08:28
SSH keys hey.

bethskurrie
2020-10-27 08:28
Interesting thought.

bethskurrie
2020-10-27 08:28
It can go on the feature request backlog

tjones
2020-10-27 08:44
You might be able to use them to just sign the payload, idk

matt.fellows
2020-10-27 08:59
SSH keys is a terrible idea, not because it's inherently bad, but for no other reason than API tokens confuse people enough. So SSH keys would result in many heads exploding

matt.fellows
2020-10-27 09:00
Ask Beth

matt.fellows
2020-10-27 09:04
But on a more serious note, we now have system users with API tokens tied to them (not real/human users)

matt.fellows
2020-10-27 09:04
Would that solve your "share it around" problem?

matt.fellows
2020-10-27 09:06
SSH tokens would make the API itself harder to communicate with though ergonomically (think HMAC etc). You now essentially must use a client lib to talk to the API

kong
2020-10-27 09:29
hm.. SSH keys as a form of auth&auth with APIs? does require some investigation. I am partially with @matt.fellows there, it is definitely a lot more work to get it working on clients and Windows can be a very different beast again.

matt.fellows
2020-10-27 09:30
I wouldn't be surprised if a customer asked for HMAC (or MASSL) at some point tho, which certainly isn't simple

kong
2020-10-27 09:30
Not impossible, though. Would wonder how much confusion will ensue for both API token and SSH key support

matt.fellows
2020-10-27 09:31
I can see it making some sense for developer tools. Are there any examples out there that come to mind we can model from?

wesleythomaswilliams
2020-10-27 09:40
I don't think we ever formally went from evaluation to production, beyond upgrading from free pactflow to paid for my team's account and basically everything was done by me and isn't yet complete. At the time, all the services we were testing were owned by my team and the API key was embedded in the jenkinsfile and pom for every microservice. I'd rather put it in one place and somewhere secure, but that wasn't a high priority. Is that helpful at all?

sklein
2020-10-27 13:22
Ah it's the sha. That makes total sense. I learned something! Thanks @bethskurrie!

sklein
2020-10-27 13:32
The only person that uses that write token locally is me (usually during some form of demo), but normal workflow is as you describe here. Only the CI/CD system uses the R/W token and everyone else grabs the RO token for local development purposes.

jackbwheatley
2020-10-27 21:02
has joined #pactflow

carlosalmeida.xon
2020-10-27 22:06
has joined #pactflow

tjones
2020-10-28 02:53
@matt.fellows: I'm not proposing that you can put an ssh key in the header (especially since your public key is ... well... public). I'm proposing that you could also accept signed payloads in some way, and that the ssh public keys could be automatically (or one click) propagated to pact-flow from github. The solution I'm proposing would be less config from the user, could work alongside the existing solution, and if done well people wouldn't even realise they were authenticating automatically.

tjones
2020-10-28 02:53
I think it would be *less* confusing, not more

nasir.amin
2020-10-28 11:07
has joined #pactflow

nasir.amin
2020-10-28 11:13
Hi all, We are in the middle of experimenting with pactflow with GitHub Actions before adoption. We are following the CI/CD example and at the stage where we want a webhook trigger the provider build. However, the docs talk about other CI systems but nothing on how to do this using GitHub actions. I would really appreciate some guidance on this please

matt.fellows
2020-10-28 11:19
Hi @nasir.amin

matt.fellows
2020-10-28 11:20
The https://t.sidekickopen80.com/s1t/c/5/f18dQhb0S7kF8bWHGMW58WrZP2zGCwVN8Jbw_8QsRtKVngSwj5w6K98W16gGDH8BNVxm101?te=W3R5hFj4cm2zwW3H8_MV1JDWTLW4fH0kN4m8k_SW1LwtWL4cgBJ5W49N0jC43Vs87w3F7TGD48H2&si=8000000002979937&pi=f67a3602-bc68-4ab0-d44a-b7ff1da6555f has recently been updated to work with GH actions, so I think you should be able to use that as a basis. In summary: Step 1: create a webhook to trigger a custom Pact-only step of the provider build. It will use a custom event of your choosing to be the source of the trigger (in this case pact_changed). See https://github.com/pactflow/example-provider/blob/master/Makefile#L83-L93 for how to programmatically create that webhook (or use it as a basis to do via the UI) Step 2: create a workflow (provider build) to receive and act on this GH event https://github.com/pactflow/example-provider/blob/master/.github/workflows/verify_changed_pact.yml.  Step 3: update your provider https://t.sidekickopen80.com/s1t/c/5/f18dQhb0S7kF8bWHGMW58WrZP2zGCwVN8Jbw_8QsRtKVngSwj5w6K98W16gGDH8BNVxm101?te=W3R5hFj4cm2zwW3P28X24hCPvhW43T4P43z8p26W3ZZpwX3Kchm7W45Rjxp45TRgYW3SZ8dl1LvFJtW3BLhfh4cQgTgW1LDLhp1LCtTLW3HcvCH1LCtTLW3HcvCH1JDWTLW4fdKsf4cQb1nn4c9xbz113&si=8000000002979937&pi=f67a3602-bc68-4ab0-d44a-b7ff1da6555f to verify the _specific_ pact that was changed (instead of fetching by tag as you would a standard build). You can see that on https://t.sidekickopen80.com/s1t/c/5/f18dQhb0S7kF8bWHGMW58WrZP2zGCwVN8Jbw_8QsRtKVngSwj5w6K98W16gGDH8BNVxm101?te=W3R5hFj4cm2zwW3P28X24hCPvhW43T4P43z8p26W3ZZpwX3Kchm7W45Rjxp45TRgYW3SZ8dl1LvFJtW3BLhfh4cQgTgW1L4_zX4fHT3sW1LGnX-3XX4Q5W4mHZGs3K8Qc8W4rtQLv3zdZ6pW3H2mj53Fdr-Jw3_Wzdx4Br2&si=8000000002979937&pi=f67a3602-bc68-4ab0-d44a-b7ff1da6555f it converts a field in the incoming webhook (initiated from Pactflow) to the environment variable PACT_URL. I hope that helps! If you haven?t already, i?d highly encourage running through that CI/CD workshop. Beth?s done a fantastic job of it.

nasir.amin
2020-10-28 11:22
@matt.fellows Thanks for getting back to me so quickly.

nasir.amin
2020-10-28 11:24
However, are you sure that the GitHub actions guidance is published in the CI/CD workshop as it is still talking about Travis CI. I can't see anything about GH Actions in the guide there. The other links you have mentioned is exactly what we were thinking of doing i.e. repository dispatch. However, I was hoping for a more neater way.

jimish.shah.-nd
2020-10-28 11:26
has joined #pactflow

matt.fellows
2020-10-28 11:26
> However, are you sure that the GitHub actions guidance is published in the CI/CD workshop hm, the content may not yet reflect GH actions, but I believe the code has been done for it. @bethskurrie will be able to elaborate more (I?ve not tested it personally, but it? looks like it should work!) The principles in that workshop are the same regardless though, so even if you don?t do the steps, reading the workshop will explain why things have been done the way they have. The specific CI system is kind of irrelevant then

darshan
2020-10-28 13:11
has joined #pactflow

adam_figgins
2020-10-28 14:20
has joined #pactflow

aperdomobo
2020-10-28 15:42
has joined #pactflow

diazguerra2
2020-10-28 16:06
has joined #pactflow

xsamore
2020-10-28 19:52
has joined #pactflow

simon
2020-10-28 20:49
has joined #pactflow

ruben.cagnie
2020-10-29 01:24
has joined #pactflow

272939217
2020-10-29 05:33
has joined #pactflow

driloni92
2020-10-29 09:05
has joined #pactflow

pauloavra
2020-10-29 12:33
has joined #pactflow

tritorto
2020-10-29 20:31
Not locally - for our team, any local development is done against a local docker pact broker on each devs machine, only our CI/CD interacts with pactflow

bethskurrie
2020-10-29 21:38
@tritorto you can use local file URLs rather than a local broker if that's a hassle.

bethskurrie
2020-10-29 21:38
They don't have to be http urls

bethskurrie
2020-10-29 21:48
@nasir.amin the docs are still be updated. I've got them on a branch, but haven't tested and merged them yet.

tritorto
2020-10-29 21:50
Thanks for the suggestion! we actually find it pretty straightforward using the docker container locally... good to know there are options though

bethskurrie
2020-10-29 21:50
Whatever works!

bethskurrie
2020-10-29 21:51
I tend to have two verification tasks if I'm working locally. One that uses the broker, and one that uses the file system.

bethskurrie
2020-10-29 21:51
If I'm working on both sides of the integration.

jikogay728
2020-10-30 17:20
has joined #pactflow

nasir.amin
2020-10-30 17:30
@bethskurrie Thanks a lot. You have done a lot of good work already. We are trying to establish an end to end pact workflow between a consumer and a provider. ? Consumer publishes a newer version of pact to the broker ? Consumer waits for pactflow to trigger the provider build. ? Provider verifies the contract ? Consumer build gets the result on a PR in GH ? Consumer can now deploy or not depending on the above result. ? However, we are a bit unsure about consumer waiting for the provider to verify the contract automatically and get the result as part of Can-i-deploy in one build rather than having to run a new build for the consumer. I think there might be a bit of confusion on our part here

deepika.krishnakumar
2020-10-30 19:43
Hi. Is there a way to set http proxy before accessing pactflow from my provider. I?m trying from a java application. Any way of setting http.proxy. I was able to set it and publish to pactflow but the provider is unable to connect to it

matt.fellows
2020-10-30 22:32
Try asking in #pact-jvm ?

deepika.krishnakumar
2020-10-30 22:34
I actually did paste the question there but did not get a response. Let me paste it again

matt.fellows
2020-10-30 22:47
Sorry, it's a busy channel maybe it got lost in the noise!

blmlcu
2020-10-31 14:51
has joined #pactflow

jamescourtoy
2020-11-02 21:04
has joined #pactflow

telmo.ferreira.costa
2020-11-03 11:32
has joined #pactflow

sergii.kopovskyi
2020-11-03 12:35
has joined #pactflow

silverton.gimenes
2020-11-03 17:58
has joined #pactflow

silverton.gimenes
2020-11-03 18:11
hey everyone, I would receive an email when invited to http://pact.io, but It didn't happen, who can help me on that ?

colber16
2020-11-03 18:34
has joined #pactflow

cvoong
2020-11-03 18:55
has joined #pactflow

matt.fellows
2020-11-03 21:18
Drop us a line at with your registration info and we'll help you out. Did it end up in spam perhaps?

cluu
2020-11-06 15:08
Hi, I?m at my wit?s end here with trying to PoC PactFlow for my organization. I am able to publish my contract to PactFlow, but I cannot verify due to 401 error. I have set the token to the ?PACT_BROKER_TOKEN? env without any success. Does anyone has any suggestion for the next course of action?

matt.fellows
2020-11-06 21:40
Can you please drop a line to showing the code that's not working?

matt.fellows
2020-11-06 21:41
Sorry to hear you're having issues

matt.fellows
2020-11-06 21:42
Also confirming you're definitely using the read/write token as described https://docs.pactflow.io/#configuring-your-api-token

matt.fellows
2020-11-06 21:42
Lastly, not all libraries automatically pickup that Env vat, which language are you using?

cluu
2020-11-06 22:18
Thanks, I?ll send an email to . I?m using read/write token and pact-python.

matt.fellows
2020-11-07 00:50
Thanks. For future people, it was an unfortunate copy/paste error. We all have those days :slightly_smiling_face:

pbobba
2020-11-09 23:03
has joined #pactflow

jun.li
2020-11-09 23:05
has joined #pactflow

douweicai
2020-11-10 04:11
has joined #pactflow

2020-11-10 04:20
Notification from *Pactflow* :ghost:

matt.fellows
2020-11-10 06:07
@tjones @anders :point_up: relevant to that discussion yesterday

christian.huber
2020-11-10 09:20
has joined #pactflow

vuttithatkrongyot
2020-11-10 10:57
has joined #pactflow

dan.iosif
2020-11-10 17:06
has joined #pactflow

rodrigo.costa20
2020-11-12 00:59
has joined #pactflow

yong.gong188
2020-11-12 09:13
has joined #pactflow

anandhadeepak
2020-11-12 13:03
has joined #pactflow

david.dias
2020-11-12 20:04
has joined #pactflow

bethskurrie
2020-11-12 23:23
@nasir.amin if you put a `can-i-deploy` between your test phase and your deploy phase that polls for the result to come back (see the can-i-deploy CLI docs for this) then you can make it wait for the result to come back and then go straight into a deployment if it passes.

bethskurrie
2020-11-12 23:24
Or, you can make the 'verification passed' webhook trigger another consumer build to do the deployment.


nasir.amin
2020-11-13 09:12
Thanks a lot @bethskurrie

billal.patel
2020-11-13 10:31
has joined #pactflow

louis.oliver
2020-11-16 10:33
has joined #pactflow

ashishkujoy
2020-11-16 15:08
has joined #pactflow

pradeepchoube
2020-11-17 03:49
has joined #pactflow

meng-lingtao
2020-11-17 14:39
has joined #pactflow

pabvidcal
2020-11-17 15:30
has joined #pactflow

magesh.nagamani
2020-11-18 05:15
has joined #pactflow

jstoebel
2020-11-18 13:53
has joined #pactflow

daniel.sayer89
2020-11-19 10:33
has joined #pactflow

art.ptushkin
2020-11-19 10:34
has joined #pactflow

pact457
2020-11-19 10:36
has joined #pactflow

ajerthan.sivayoganath
2020-11-19 10:38
has joined #pactflow

philipchardwick
2020-11-19 11:05
has joined #pactflow

tanzmann
2020-11-19 11:09
has joined #pactflow

olivier.quere
2020-11-19 12:10
has joined #pactflow

wilfried.vandenberghe
2020-11-19 12:20
has joined #pactflow

alan.hanafy
2020-11-19 19:28
has joined #pactflow

michael.deutscher
2020-11-19 21:39
has joined #pactflow

gerry.power
2020-11-20 03:31
has joined #pactflow

alex900
2020-11-20 05:08
has joined #pactflow

tomas.panik
2020-11-20 08:28
has joined #pactflow

marc.ferland
2020-11-20 14:43
has joined #pactflow

sebastien.crapoulet
2020-11-20 15:24
has joined #pactflow

adutrillaux
2020-11-20 15:28
has joined #pactflow

he
2020-11-20 15:59
has joined #pactflow

ivgeni.slabkovski
2020-11-20 21:52
has joined #pactflow

serhatburakyildirim
2020-11-21 21:57
has joined #pactflow

alnasl
2020-11-22 18:46
has joined #pactflow

2020-11-23 05:53
Notification from *Pactflow* :ghost:

ashutosh23802
2020-11-23 06:20
has joined #pactflow

leonty
2020-11-23 10:33
has joined #pactflow

dariusz.piwko
2020-11-23 11:34
has joined #pactflow

praneeth.kumar
2020-11-23 16:18
has joined #pactflow

mark.white
2020-11-24 09:03
has joined #pactflow

nerea.tamayo
2020-11-24 12:42
has joined #pactflow

nerea.tamayo
2020-11-24 12:42
Hi all! I'm trying to create webhook in PactFlow for triggering Jenkins pipeline but I don't know how to start.... In PactFlow, clicking on "add webhook", there are some parameters... ? url, is the provider pipeline I want to trigger with in Jenkins? ? About credentials....Which are the credentials I need to use in the PactFLow's webhook? Is the service account I'm using for running the pipeline in Jenkins? Sorry for this type of questions, but I'm lost on this thanks!!!

ufuk.ozcelik
2020-11-24 14:58
has joined #pactflow

stefanos.varsanis
2020-11-24 16:48
has joined #pactflow

lalexander2810
2020-11-24 16:53
has joined #pactflow

sivaprasad9
2020-11-24 20:46
has joined #pactflow

brendan.donegan
2020-11-24 21:28
has joined #pactflow

bethskurrie
2020-11-24 22:39
Hi @nerea.tamayo I recommend looking up the jenkins documentation on how to trigger a build first, and understand how that works.

bethskurrie
2020-11-24 22:42
Here's a template for how to make a jenkins webhook through the API https://docs.pact.io/pact_broker/webhooks/template_library#jenkins---trigger-build

bethskurrie
2020-11-24 22:43
Here are the docs for creating a webhook through the Pactflow UI https://docs.pactflow.io/docs/user-interface/settings/webhooks


bethskurrie
2020-11-24 22:44
"The best process to create a new webhook is to first get the API call that the webhook will execute working outside the Pact Broker, using a tool like curl or Postman."

scyr
2020-11-25 14:56
has joined #pactflow

pavel.azarau
2020-11-25 18:30
Hello folks. I?m using Gradle plugin ?http://au.com.dius.pact? version ?4.1.9". I?ve configured it to access our company?s pactflow acc. And when I run `pactVerify` task I?m getting ```Failed to fetch the root HAL document au.com.dius.pact.core.pactbroker.RequestFailedException: Request to path '/' failed with response 'HTTP/1.1 400 Bad Request' at au.com.dius.pact.core.pactbroker.HalClient.handleHalResponse(HalClient.kt:301) at au.com.dius.pact.core.pactbroker.HalClient.access$handleHalResponse(HalClient.kt:140) at au.com.dius.pact.core.pactbroker.HalClient$getJson$1.invoke(HalClient.kt:284)``` However in Postman I can successfully perform a GET request using the same url and token I used to configure plugin

matt.fellows
2020-11-25 21:02
Have you tried upgrading? There was an issue with auth in a previous version where multiple duplicate headers were being sent and the load balancer was rejecting the request.

pavel.azarau
2020-11-25 21:06
oh, thanks! 4.1.11 worked for me :slightly_smiling_face: didn?t see that the plugin was updated recently

matt.fellows
2020-11-25 21:06
Great!

timotheus.ruprecht
2020-11-25 22:12
has joined #pactflow

billal.patel
2020-11-26 11:30
@billal.patel has left the channel

manali.mogre
2020-11-26 11:44
has joined #pactflow

erik.terpstra
2020-11-26 12:08
has joined #pactflow

kjayachandra2000
2020-11-26 20:40
has joined #pactflow

sushil.kumar
2020-11-27 01:45
has joined #pactflow

wilkinsweiqiangliang
2020-11-27 04:23
has joined #pactflow

wilkinsweiqiangliang
2020-11-27 04:24
#pactflow Hey guys, does pactflow always trigger the `HEAD` commit? i follow the event template from docs, and find it sometime send `HEAD` commit, sometime send a different commit.

matt.fellows
2020-11-27 04:24
What do you mean by triggering the HEAD commit? We don?t have the concept of a commit in Pactflow

matt.fellows
2020-11-27 04:24
I?m assuming you?re talking about a webhook trigger?

wilkinsweiqiangliang
2020-11-27 04:25
yes

wilkinsweiqiangliang
2020-11-27 04:25
in webhook trigger

wilkinsweiqiangliang
2020-11-27 04:25
you can config a HEAD

matt.fellows
2020-11-27 04:25
?

matt.fellows
2020-11-27 04:25
can you please show me what you mean?

matt.fellows
2020-11-27 04:26
The configuration of you webhook may be to trigger the `HEAD` commit in your CI, but Pactflow knows nothing about that

wilkinsweiqiangliang
2020-11-27 04:27
```{ "branch": "master", "commit": "HEAD", "message": "Build all the things from pact! :rocket:", "env": { "PACT_URL": "${pactbroker.pactUrl}", "CONSUMER_NAME": "${pactbroker.consumerName}", "PROVIDER_NAME": "${pactbroker.providerName}" } }```

matt.fellows
2020-11-27 04:27
Pactflow sees a contract, and will issue that request to (in your case) buildkite

matt.fellows
2020-11-27 04:27
your webhook template specifies the HEAD commit, so presumably it will always trigger the HEAD of master

wilkinsweiqiangliang
2020-11-27 04:27
is not the case

wilkinsweiqiangliang
2020-11-27 04:28
sometime it trigger on a old commit

matt.fellows
2020-11-27 04:29
that?s a buildkite thing though, we can?t control what commit your CI system picks up when the webhook comes in

matt.fellows
2020-11-27 04:30
we see a new / changed contract, and we send the request to your CI

matt.fellows
2020-11-27 04:30
if your CI hasn?t picked up the latest commit yet, not sure what we can do about that

wilkinsweiqiangliang
2020-11-27 04:30
yea thats what i think as well, and i believe we specify to use HEAD

matt.fellows
2020-11-27 04:32
hmm

matt.fellows
2020-11-27 04:32
so is it basically that BK has not detected new changes?

matt.fellows
2020-11-27 04:33
In any case, the BK team is pretty responsive in their slack channel - I?d recommend hitting them up there!

matt.fellows
2020-11-27 04:33
(and they?re awesome peeps)

wilkinsweiqiangliang
2020-11-27 04:34
cool

wilkinsweiqiangliang
2020-11-27 04:34
thanks

zhujian
2020-11-27 07:54
has joined #pactflow

h.octavian
2020-11-27 14:08
has joined #pactflow

noel
2020-11-28 23:12
has joined #pactflow

muraalee
2020-11-30 01:56
has joined #pactflow

pooja.sharma
2020-11-30 08:52
has joined #pactflow

mo
2020-11-30 09:24
has joined #pactflow

david.greene
2020-11-30 21:47
has joined #pactflow

bas
2020-12-01 09:00
has joined #pactflow

wainstead
2020-12-01 14:57
has joined #pactflow

jerobinson
2020-12-01 20:32
has joined #pactflow

sumedhagamage
2020-12-02 03:33
has joined #pactflow

fealaer
2020-12-02 11:40
has joined #pactflow

fealaer
2020-12-02 11:52
Hey everyone! We're experiencing an unexpected behaviour running `can-i-deploy` . We see that pact is verified in http://pactflow.io UI but CLI response says `There is no verified pact between version <version> of Client and the latest version of API with tag <tag> (<version>)`. We had that message for several PRs this morning now most of them are green but a few are still failing this check. http://status.pactflow.io/ states `All systems are go` but it seems like something is not working correctly. Could you please help to resolve this issue? Thanks!

patrick.hendron
2020-12-02 14:44
has joined #pactflow

lpratt
2020-12-02 18:19
has joined #pactflow

uglyog
2020-12-02 21:51
http://status.pactflow.io/ gives the status of the platform, which is not currently experiencing any outage. Can you provide the consumer and tags you are using?

bethskurrie
2020-12-02 23:25
@fealaer the way to debug can I deploy is to turn on --verbose in the cli. You'll see the matrix URL that is being requested. Copy that, then go into pactflow, and switch to the "old UI" using the butting at the top of the screen.

bethskurrie
2020-12-02 23:25
Paste the matrix URL into the browser window.

bethskurrie
2020-12-02 23:26
This will show you all the rows that are used in the query. You can adjust the parameters in the form to investigate.

matt.fellows
2020-12-03 00:16
we should make a debugging article with that advice, that?s a good tip

matt.fellows
2020-12-03 00:16
(or an ?explain this result? type link from the verification output?)

bethskurrie
2020-12-03 02:21
Mm, I was having the same thought.

sandragnzalez
2020-12-03 11:04
has joined #pactflow

kristian
2020-12-03 14:34
has joined #pactflow

me1466
2020-12-03 23:42
has joined #pactflow

wenfeng.li
2020-12-04 11:42
has joined #pactflow

cdambo
2020-12-05 11:59
has joined #pactflow

tjones
2020-12-08 04:36
hi friends, I think I may have found a bug with sending credentials out - I signed up for the free account level today. I got the "welcome, here's your login URL" email, but I haven't had the temporary creds yet (in 10 minutes) When searching my email to confirm that I haven't received the email, I found out that I've already got an account (which I forgot about) with the same email address. This might be related

tjones
2020-12-08 04:39
(Using the reset password feature worked)

bethskurrie
2020-12-08 04:40
Matt's been working on this recently.

bethskurrie
2020-12-08 04:40
It's a known thing, Cognito related. It'll be the same credentials.

tjones
2020-12-08 04:42
Also, the reset password flow UX is a little surprising - Go to login, hit reset password, get an email The email has a code and a link to the login page(s) However, the code doesn't work as a password - you have to click "reset password" again, and it then asks for the code I reckon it would be better if the email linked to the reset password screen that asked for the code (or warns you that you'll need to click the thing)

tjones
2020-12-08 04:42
If I remembered the creds, I might have remembered that I already had one :wink:

bethskurrie
2020-12-08 04:42
The joys of cognito.

bethskurrie
2020-12-08 04:44
Matt's been moving some of the default Cognito communications into custom handlers, so this feedback is timely.

tjones
2020-12-08 04:44
Awesome :slightly_smiling_face:

gayatree.eee
2020-12-08 04:50
has joined #pactflow

matt.fellows
2020-12-08 05:00
I remember some idiot doing the Cognito integration. They had no idea what they were doing.

matt.fellows
2020-12-08 05:00
As Beth says, this is very timely.

matt.fellows
2020-12-08 05:01
It would indeed be super confusing.

c.pavan1986
2020-12-09 04:18
has joined #pactflow

william.pritchard
2020-12-09 15:28
has joined #pactflow

parveshchaudhary111
2020-12-09 17:54
has joined #pactflow

w.sobasik
2020-12-10 10:39
has joined #pactflow

wesleythomaswilliams
2020-12-10 14:08
.

wesleythomaswilliams
2020-12-10 14:24
.

gayatree.eee
2020-12-11 15:46
Consumer 1, Consumer 2, Consumer 3 is making use of Provider1 API to receive the list of Students.   Sample Student List Response Format:   [{ "id":1, "name": "John Doe", }, { "id":2, "name": "John Smith", } ]   Scenario1 :   Suppose Consumer1 wants ?name? field to be converted into 2 separate fields like firstName and lastName.   Now the required response for Consumer looks like below:   [{ "id":1, "firstName": "John", ?lastName?: ?Doe? }, { "id":2, "firstName": "John", ?lastName?: ?Smith? } ]   Now if Consumer makes the necessary changes to the pact contract and publish the pending contract. As discussed in the pact document (http://blog.pact.io/2020/02/24/how-we-have-fixed-the-biggest-problem-with-the-pact-workflow/), provider should make the necessary changes (to separate name field into 2 different fields) to satisfy the contract published by Consumer1.     In this scenario, how the provider will communicate the required changes to Consumer2 and Consumer 3?  As the changed code will break the contract of other Consumers (Consumer 2 and Consumer 3), it will fail the provider build. So how should we handle this scenario?

matt.fellows
2020-12-11 21:54
So there are a few things to consider here: 1. The provider may choose to deny that change - aka say ?no, that?s not something we?re going to do?. That?s always there prerogative 2. Just because `Consumer` wants `firstName` and `lastName` doesn?t mean the provider should remove `name` altogether. > As the changed code will break the contract of other Consumers (Consumer 2 and Consumer 3), it will fail the provider build. So the answer is to not break the API! Until all consumers move to the new fields, the provider should return something more like this (often referred to as the ?expand and contract? approach): ```[{ "id":1, "firstName": "John", "lastName": "Doe", "name": "John Doe", }, { "id":2, "firstName": "John", "lastName": "Smith", "name": "John Smith", } ]``` Extra fields present in the response do not break the contract for the consumers that don?t need it. The contract that Provider must satisfy is the union of all interactions of Consumer 1,2,3 (where there is no conflict). In the case of conflicts, there are other things to consider - how did we get to a conflict? Is the API boundary correct? Do we need a narrower, use-case specific interface (e.g. BFF) for our consumer?

thanuxxxx
2020-12-12 22:41
has joined #pactflow

ian.hamilton
2020-12-13 06:53
has joined #pactflow

colm.j.murphy91
2020-12-13 07:02
has joined #pactflow

victoria.kruczek
2020-12-13 14:13
has joined #pactflow

wuddarwin
2020-12-14 05:23
has joined #pactflow

connor.aird
2020-12-14 15:52
has joined #pactflow

arman.najafian
2020-12-14 15:52
has joined #pactflow

praveen.lakkaraju
2020-12-14 16:12
has joined #pactflow

alejandro.germain
2020-12-14 16:26
has joined #pactflow

davidpihlaja
2020-12-14 21:25
has joined #pactflow

josh.ellinger
2020-12-15 01:22
has joined #pactflow

nikitsenka
2020-12-15 09:35
has joined #pactflow

hibahawes
2020-12-15 09:53
has joined #pactflow

sarvar
2020-12-15 14:24
has joined #pactflow

suruchipatidar14
2020-12-16 05:35
has joined #pactflow

smatheson
2020-12-16 06:33
has joined #pactflow

olayemifolakemi
2020-12-16 15:23
has joined #pactflow

ania.kovalchuk
2020-12-17 00:09
has joined #pactflow

writetojoshma
2020-12-17 05:52
has joined #pactflow

writetojoshma
2020-12-17 06:29
Hii

writetojoshma
2020-12-17 06:30
in `require': cannot load such file -- pact/mock_service/request_handlers/base_administration_request_handler (LoadError)

writetojoshma
2020-12-17 06:30
Any idea about this error

writetojoshma
2020-12-17 06:30
Pact Binary Error :

writetojoshma
2020-12-17 06:30
node_modules/@pact-foundation/pact-node/standalone/win32-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-mock_service-3.6.2/lib/pact/mock_service/request_handlers/interaction_post.rb:1:in `require': cannot load such file -- pact/mock_service/request_handlers/base_administration_request_handler (LoadError)

matt.fellows
2020-12-17 06:31
:wave:

matt.fellows
2020-12-17 06:31
thanks for asknig in a public channel. It looks like you?re using #pact-js (so best to ask these questions in the language specific channel)


matt.fellows
2020-12-17 06:32
See if any of the remediations get you anywhere

matt.fellows
2020-12-17 06:33
Alternatively, you can try out our new https://github.com/pact-foundation/pact-js#pact-js-v3 which does not suffer this issue, and has other benefits (new matchers etc.)

writetojoshma
2020-12-17 06:35
thank you

writetojoshma
2020-12-17 06:35
what is version of beta branch

matt.fellows
2020-12-17 06:37
If you click the link above (beta branch) it has the instructions on how to install and use it

writetojoshma
2020-12-17 06:38
```npm i @pact-foundation/pact@beta```

writetojoshma
2020-12-17 06:43
I am still getting the same error even after insalling the beta version

writetojoshma
2020-12-17 06:44
*installing

writetojoshma
2020-12-17 06:45
Pact Binary Error: C:/Users/**/node_modules/@pact-foundation/pact-node/standalone/win32-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-mock_service-3.6.2/lib/pact/mock_service/request_handlers/interaction_post.rb:1:in `require': cannot load such file -- pact/mock_service/request_handlers/base_administration_request_handler (LoadError) from C:/Users/**/node_modules/@pact-foundation/pact-node/standalone/win32-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-mock_service-3.6.2/lib/pact/mock_service/request_handlers/interaction_post.rb:1:in `<top (required)>'

brendan.donegan
2020-12-17 09:56
Hi, I had a quick question. Will there ever be any plans to offer Pact Flow in an on-premises version (as opposed to the open-source Pact Broker)?

bethskurrie
2020-12-17 09:56
Yes.

bethskurrie
2020-12-17 09:56
It already is available. Just finding you a link.


bethskurrie
2020-12-17 09:58
There's some marketing info in that page. The technical docs are here: https://docs.pactflow.io/docs/on-premises

bethskurrie
2020-12-17 10:01
You can book a demo with Matt if you're interested @brendan.donegan, using the "book a demo" button on https://pactflow.io/

brendan.donegan
2020-12-17 10:02
Thanks @bethskurrie something for after the holidays :slightly_smiling_face:

gayatree.eee
2020-12-17 10:07
Hi, Need some clarity on Can-I-Deploy in Provider Pipeline. As per my understanding a breaking change in provider for any consumer can be caught in Provider Testing phase, then what is the purpose of Can-I-Deploy in provider pipeline.

bethskurrie
2020-12-17 10:08
1. the consumer may have deployed between when you ran the verification and when you deployed.

bethskurrie
2020-12-17 10:09
2. If you are using pending pacts, your build may NOT fail when a pact fails verification, so it might need to be caught by can-i-deploy.

gayatree.eee
2020-12-17 10:40
Is enabling pending pacts a provision to pass provider build irrespective of contract failure? Is there any point of just passing the building for provider by enabling pending pact?

matt.fellows
2020-12-17 10:45
No, pending pacts only prevents a failing build for new, unseen contracts for that provider tag. Basically, a new request by a consumer. Once the provider has successfully verified a pact for a given provider tags, it will fail a build going forward

matt.fellows
2020-12-17 10:45
The docs explain this in more detail than I can type here

gayatree.eee
2020-12-17 10:49
Could you please share the link to doc


rejeesh.g
2020-12-17 11:07
has joined #pactflow

gayatree.eee
2020-12-17 11:21
Thanks

lukas.kempec
2020-12-17 12:45
has joined #pactflow

vikas543
2020-12-17 16:28
has joined #pactflow

bpugh
2020-12-17 17:05
has joined #pactflow

jeff.burmood
2020-12-19 17:45
has joined #pactflow

kyle.florence
2020-12-19 19:21
has joined #pactflow

ankurmalik22
2020-12-19 21:14
has joined #pactflow

vsukumaran
2020-12-20 01:56
has joined #pactflow

omer.morad
2020-12-20 08:10
has joined #pactflow

ringo
2020-12-20 10:51
has joined #pactflow

omer.moradd
2020-12-20 18:01
has joined #pactflow

souravsen1
2020-12-21 11:28
has joined #pactflow

andoni.arroyo
2020-12-21 17:51
has joined #pactflow

thanuxxxx
2020-12-21 23:59
Hi there, I am using PactFlow as my pact-broker. From consumer side, I am able to publish a contract to the server(PactFlow), and I am able to import the contract to my provider and all tests are passing as I expected. But in the dashboard (PactFlow), it says `Provider version never verified`

matt.fellows
2020-12-22 00:00
This almost certainly means you haven't published the verification results

matt.fellows
2020-12-22 00:01
What language are you using and what have you tried?

thanuxxxx
2020-12-22 00:01
Java with ``` <groupId>au.com.dius.pact.provider</groupId> <artifactId>junit5</artifactId> <version>4.1.12</version> <scope>runtime</scope> </dependency>```

matt.fellows
2020-12-22 00:03
How are you verifying?

thanuxxxx
2020-12-22 00:03
``` @TestTemplate @ExtendWith(PactVerificationInvocationContextProvider.class) void pactVerificationTestTemplate(PactVerificationContext context) { String providerName = context.getProviderInfo().getName(); String interactionDescription = context.getInteraction().getDescription(); http://LOGGER.info(String.format("testTemplate called: %s, %s", providerName, interactionDescription)); context.verifyInteraction(); }```

thanuxxxx
2020-12-22 00:05
I thought after verifying all tests in provider side, pact automatically publish the results back to Pactflow

matt.fellows
2020-12-22 00:05
How are you setting it to send verification results?


thanuxxxx
2020-12-22 00:07
Maybe I don't have any setting to send the verification results back to Pactflow

thanuxxxx
2020-12-22 00:24
That worked thank you!!

theovanessen
2020-12-22 10:47
has joined #pactflow

stuart3166
2020-12-22 12:35
has joined #pactflow

winfante
2020-12-22 22:51
has joined #pactflow

lars.bonnes
2020-12-23 13:05
has joined #pactflow

eungjun.yi
2020-12-25 14:25
has joined #pactflow

ebanster
2020-12-27 13:18
has joined #pactflow

onur.baskirt
2020-12-28 10:48
has joined #pactflow

massimo.daros
2020-12-29 13:18
has joined #pactflow

chris.fullinwider
2020-12-29 18:15
has joined #pactflow

piotr.soltysiak
2020-12-30 16:55
has joined #pactflow

gayatree.eee
2021-01-04 10:25
In pending contract doc the sentence *"This means that any subsequent verification failures for a pact with identical content will cause the provider build to fail, as the failure can now only be due to a change in the provider code." -* With enablePending value true, when does the provider build fails? We noticed that the build never fails when the enablePending is true on provider end even if the provider code is changed.

matt.fellows
2021-01-04 11:29
It has to first accept the contract by successfully verifying it for the configured provider tag

matt.fellows
2021-01-04 11:29
> It achieves this by treating the first successful verification of a pact version by a particular branch of the provider as an implicit acceptance of the contract. Thereafter, if verification of that pact version fails, it can only be because the provider has made a backwards incompatible change.

matt.fellows
2021-01-04 11:30
It will fail once it's first verified the new pact and then breaks the contract

kjayachandra2000
2021-01-04 12:03
Hi All, any help how to publish repository url to the network graph, :thinking_face:

matt.fellows
2021-01-04 13:26
Issue a POST/PUT to create or update a pacticipant and include the `repositoryUrl` property in the payload.

kjayachandra2000
2021-01-04 13:32
is there a way i provide the repositryUrl while `pactPublish` or `pactVerify`?

kjayachandra2000
2021-01-04 13:32
more like in configuration

matt.fellows
2021-01-04 13:38
There is a terraform provider. It's just a once off API call per pacticipant to do it tho

adrian.przybyla
2021-01-04 13:41
has joined #pactflow

dcorrales
2021-01-04 22:06
has joined #pactflow

jokubas.lekevicius
2021-01-04 22:10
has joined #pactflow

matt195
2021-01-05 16:35
has joined #pactflow

rafael.manzoni
2021-01-05 17:56
has joined #pactflow

animesh2712
2021-01-05 19:29
has joined #pactflow

alan.hanafy
2021-01-05 21:13
Is there some feature in pactflow that will clear the webhook execution logs somehow? i've been trying to setup a webhook to github and at some point the logs are all gone. i've checked console, network logs in browser and not finding anything. logged out and back in, still no logs

info
2021-01-06 01:55
has joined #pactflow

matt.fellows
2021-01-06 04:03
Not that I?m aware of!

matt.fellows
2021-01-06 04:03
I don?t think we log webhook executions from the ?test? button on the webhook screens though, so that?s the only thing I can think of

matt.fellows
2021-01-06 04:03
once it?s been created, it should log all triggers and related executions (a trigger may cause multiple executions e.g. if the first attempt failed for example)

bethskurrie
2021-01-06 04:14
@alan.hanafy you can raise an issue by sending an email to and we can have a look in the database for you. The webhook log screen is new, so there may be a bug.

alan.hanafy
2021-01-06 04:25
@matt.fellows @bethskurrie thanks. The execution logs were not from the test button (yes those didn't show up which I expected) but from "real" contract publish events. I'll send an email to support to ask someone to look into it. Thanks for the clarification.

pascal.libenzi
2021-01-06 10:57
has joined #pactflow

alan.hanafy
2021-01-06 18:14
I'll have to wait for support to get back to me to give them an update, but in the mean time, i was able to troubleshoot my webhook setup to the point that it now works successfully.

alan.hanafy
2021-01-06 18:15
On the first successful webhook execution, the log was populated again (with this single new execution).

alan.hanafy
2021-01-06 18:15
For whatever reason it looks like it stopped showing the execution logs after a certain amount of failed ones.

alan.hanafy
2021-01-06 18:15
I even intentionally went back and broke the webhook settings to see if the failed webhook logs would show, and they did.

brett
2021-01-06 18:55
has joined #pactflow

josh.rosenfeld
2021-01-06 19:39
has joined #pactflow

carlo
2021-01-07 13:24
has joined #pactflow

danny.porrello
2021-01-07 16:48
has joined #pactflow

dawood.abbas
2021-01-08 07:00
has joined #pactflow

thanuxxxx
2021-01-08 16:01
Hey guys, I am getting this error whenever I publish a pact to pactflow, why I am getting this error ```$ node pactio/publish_pact.ts [2021-01-08T15:27:59.248Z] INFO: pact-node@10.11.1/3274 on MacBook Pro: Publishing Pacts to Broker [2021-01-08T15:27:59.249Z] INFO: pact-node@10.11.1/3274 on MacBook Pro: Publishing pacts to broker at: http://my.pactflow.io [2021-01-08T15:28:03.780Z] ERROR: pact-node@10.11.1/3274 on MacBook Pro: Could not publish pact: Tagging version 1.0.0.1 of WebOrder as "dev" Publishing WebOrderA/Service pact to pact broker at http://my.pactflow.io The latest version of this pact can be accessed at the following URL (use this to configure the provider verification): Pact contract publishing failed: Error: Tagging version 1.0.0.1 of WebOrder as "dev" Publishing WebOrder/Service pact to pact broker at http://my.pactflow.io The latest version of this pact can be accessed at the following URL (use this to configure the provider verification): at ChildProcess.<anonymous> (/Users/user/src/web-order/node_modules/@pact-foundation/pact-node/src/publisher.js:72:40) at Object.onceWrapper (events.js:422:26) at ChildProcess.emit (events.js:327:22) at maybeClose (internal/child_process.js:1048:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5) ? Done in 5.04s. ```

thanuxxxx
2021-01-08 16:37
NVM

matt.fellows
2021-01-08 22:50
Anything worth sharing?

matt.fellows
2021-01-08 22:50
Could we make the error more helpful?

cksharma122
2021-01-10 17:19
has joined #pactflow

caiquedpfc
2021-01-11 04:05
has joined #pactflow

henrik.rudstrom
2021-01-11 18:30
has joined #pactflow

eric
2021-01-12 10:23
has joined #pactflow

fnguyen
2021-01-13 00:39
has joined #pactflow

gayatree.eee
2021-01-13 12:28
PendingPact: If we use ConsumerVersionSelector, then the changes in consumer contract on specific feature branch will not fail any provider build. Then where can we use PendingPact effectively?

pollet_22
2021-01-13 16:04
has joined #pactflow

dshattuck
2021-01-13 20:49
has joined #pactflow

thomas.rosati
2021-01-13 21:58
has joined #pactflow

matt.fellows
2021-01-13 23:44
ConsumerVersionSelectors are separate to pending pacts

matt.fellows
2021-01-13 23:44
Pending pacts relate to when a provider has never seen a particular version of a contract (for a given provider tag).

matt.fellows
2021-01-13 23:45
consumer version selectors are a way of defining which contracts to verify. Some, all or none of those contracts may deemed to be pending

rahulsmalpani
2021-01-14 07:56
has joined #pactflow

sacha.camfferman768
2021-01-14 09:42
has joined #pactflow

sklein
2021-01-14 14:32
Is there a way to retrigger a webhook for a published contract or verification result? I noticed the shiny new Webhooks tab which is very nice. It would be great if I could trigger a webhook for a specific event from that page!

phil.endsley
2021-01-14 15:06
Just adding on in case you were intending to ask about pending pacts and where to use them effectively. > If we use ~ConsumerVersionSelector~ pending pacts, then the changes in consumer contract on specific feature branch will not fail any provider build. Correct. When verification runs on a provider, if the pact is pending, and verification fails, the provider build will not fail. It will still publish a failed verification result. Using pending pacts makes it so a breaking change committed to the consumer does not block progress on the provider. Imagine a scenario where the consumer and provider are maintained by separate teams. In this scenario, there is an existing pact that is verified. The consumer team makes a change to the existing pact, and that change is merged. Provider verification fails. Without pending pacts, the provider team is now blocked by this changed contract. Their builds will fail until the new contract is fulfilled. This blocks them from new feature development, deploying hotfixes, and anything else until that contract is satisfied. In some organizations, this causes frustration for the provider team, because the status of their build is now being dictated by consumers. If a consumer team merges a contract that can't be verified, the provider team is blocked until that is resolved. If pending pacts are enabled, verification will still fail, but the build will pass. If you're using can-i-deploy, this means the consumer cannot deploy the latest version, because there is not a successful verification. Since the provider's build is still "green", they can continue development and deployments as long as they don't break existing contracts. This shifts the burden of responsibility to fix the issue back to the consumer team, because they cannot deploy with a pact that has not been verified. For some organizations, this makes sense, since the consumer team was responsible for introducing the new contract before the provider team was ready.

bethskurrie
2021-01-14 20:11
@phil.endsley you explained that better than I could. I need to put that somewhere in the docs.

bethskurrie
2021-01-14 20:11
@sklein no there isn't but it would be pretty easy to add the feature. Can you raise it in https://pact.canny.io?

matt.fellows
2021-01-14 21:54
:taco: for @phil.endsley indeed

matt.fellows
2021-01-14 21:54
And yes, Phil should write our docs now :stuck_out_tongue:

brandonbeard86
2021-01-14 22:10
has joined #pactflow

geetishnayak
2021-01-15 01:02
has joined #pactflow

shettyg
2021-01-15 14:18
has joined #pactflow

natarajang1
2021-01-15 15:29
has joined #pactflow

michel.neufeglise
2021-01-18 08:55
has joined #pactflow

bart.boersma
2021-01-18 10:48
has joined #pactflow

monica.wu
2021-01-19 06:25
has joined #pactflow

makobernal
2021-01-19 08:23
has joined #pactflow

jibrail.idris
2021-01-19 10:11
has joined #pactflow

jmvb.registros
2021-01-19 11:01
has joined #pactflow

tpham
2021-01-19 22:36
has joined #pactflow

vishal.grover
2021-01-20 03:12
has joined #pactflow

priya.saraf
2021-01-20 08:43
has joined #pactflow

fahad.aj.khan
2021-01-20 08:58
has joined #pactflow

nicole.jaenchen
2021-01-20 09:38
has joined #pactflow

dinakaran.ulaganathan
2021-01-20 13:59
has joined #pactflow

ptsiakos77
2021-01-20 21:55
has joined #pactflow

mhdtouban
2021-01-21 01:58
has joined #pactflow

veeraprathap.n
2021-01-21 04:10
has joined #pactflow

tsiakos
2021-01-21 09:24
has joined #pactflow

oleg
2021-01-21 13:05
has joined #pactflow

thomas.powell
2021-01-22 10:18
has joined #pactflow

stefan.selent
2021-01-23 01:54
has joined #pactflow

paulo
2021-01-25 11:37
has joined #pactflow

kmckeever
2021-01-25 14:38
has joined #pactflow

robert.land
2021-01-25 19:25
has joined #pactflow

aparnachaudhari
2021-01-25 21:34
has joined #pactflow

gwhill7
2021-01-25 23:23
has joined #pactflow

bibinc99
2021-01-26 14:37
has joined #pactflow

bheemreddy181
2021-01-26 19:11
has joined #pactflow

nouri.tawfik
2021-01-26 19:39
has joined #pactflow

luisc.barretog
2021-01-27 00:42
has joined #pactflow

sklein
2021-01-27 01:12
What is the easiest way to delete an errant version for a pacticipant?

sklein
2021-01-27 01:20
Please disregard managed to accomplish this using the api

matt.fellows
2021-01-27 01:33
For posterity, you can definitely issue a `DELETE` to that specific resource in the API (via HAL browser or otherwise)

matt.fellows
2021-01-27 01:33
You can also navigate directly to the pact version through the UI, and choose to delete it from the drop down (note that the user I?m logged into below can?t do that, because of permissions)

matt.fellows
2021-01-27 06:33
That?s going to delete the pacticipant though and all related data - so be careful running that one if you care about history!

laxmi.somni508
2021-01-27 10:27
has joined #pactflow

ryanding16
2021-01-27 20:25
has joined #pactflow

athurner
2021-01-28 13:55
has joined #pactflow

alex.mcnair
2021-01-28 18:35
has joined #pactflow

mailinglistsspammedme
2021-01-28 23:30
has joined #pactflow

artur
2021-01-29 05:45
has joined #pactflow

artur
2021-01-29 05:48
I'm playing currently with pactflow. I can upload and tag pacts also the verification from the provider seems to work. the dashboard shows me a successfully verified pact but when I browse in the details the verification status for every interaction is "unknown" -what does that mean?

uglyog
2021-01-29 06:01
Ah, that is probably an issue with the published results. It doesn't have the result for each interaction. I recently fixed it in Pact-JVM, but need to do the same fix in the Rust codebase.

artur
2021-01-29 06:24
in which repo should I open the issue?

artur
2021-01-29 06:25
BTW. if an interaction fails its correctly published

artur
2021-01-29 06:26
but those that I expect to pass are marked as "unknown"

uglyog
2021-01-29 06:27
The whole set of results has a successful status (so they have all passed), but the individual interactions don't have a result.


uglyog
2021-01-29 06:29
Oh, yours has failed. Same issue

uglyog
2021-01-29 06:30
Because some have failed, the main status is failed, but the individual ones only have results for the failed ones

artur
2021-01-29 06:30
yes, the second screenshot is a different example. but yes the issue seems to be that the overall result is published correctly, for the interactions the result is only published if they fail

steven.beaver.retail
2021-01-29 15:34
has joined #pactflow

steven.beaver.retail
2021-01-29 15:39
is http://pactflow.io working today? Yesterday I was able to push to and pull ... today I am getting 302 errors. Is anyone else seeing this?

matt.fellows
2021-01-29 21:21
When are you seeing the 302 errors?

matt.fellows
2021-01-29 21:22
As in, what are you doing when they appear?

ekberli.elbrus
2021-01-30 16:33
has joined #pactflow

george.south
2021-02-01 21:12
has joined #pactflow

twierzchowski
2021-02-03 07:05
has joined #pactflow

yassin.hajaj
2021-02-03 10:35
has joined #pactflow

dany.marques90
2021-02-03 12:48
has joined #pactflow

marcelo
2021-02-03 13:11
has joined #pactflow

sandeeparthur
2021-02-03 19:46
has joined #pactflow

steven.beaver.retail
2021-02-04 14:48
Hello Matt, the issue has resolved itself and now I am getting 200 status as expected. When I was receiving the 302 errors, I was simply trying to access the pacts as I am able to do now.

octoberclub
2021-02-04 16:27
has joined #pactflow

slavick
2021-02-04 17:21
has joined #pactflow

imran.settuba
2021-02-04 18:57
has joined #pactflow

matt.fellows
2021-02-04 21:55
:thinking_face:

matt.fellows
2021-02-04 21:55
that is strange indeed

matt.fellows
2021-02-04 21:56
Thanks for getting back. You didn?t happen to be on an internal network/proxy did you? Sometimes reverse / transparent proxies do funny things

matt.fellows
2021-02-04 21:56
anyway, glad it?s working!

matt.fellows
2021-02-04 21:56
(I?m going to check our external load balancers, because when you first raised that ticket, I couldn?t see any `302`s - not just for your account, but on the platform at all!)

christopher.roberts
2021-02-05 01:02
has joined #pactflow

r.darcel
2021-02-05 09:15
has joined #pactflow

ashish.joshi
2021-02-06 01:07
has joined #pactflow

alex.mccormick
2021-02-08 18:33
has joined #pactflow

przemek.sech296
2021-02-08 23:18
has joined #pactflow

vplows
2021-02-09 06:00
has joined #pactflow

rodney.stromlund
2021-02-09 16:18
has joined #pactflow

steven.beaver.retail
2021-02-09 18:20
Hello @matt.fellows I am able to reproduce the issue with the 302 with another account I had to create on http://pactflow.io which is http://bottomline.pactflow.io I was working with the pact broker without issue, until I deleted a Pact Integration using the UI provided with http://bottomline.pactflow.io After this, all interactions I have with http://bottomline.pactflow.io end with http errors. From curl I see http status 302. I am getting `Unable to contact API` on http://pactflow.io in the browser

steven.beaver.retail
2021-02-09 18:22
to work around this issue, I have had to switch back to the original account which originally was giving me the 302 status and is now working as expected ... :flushed:

nada
2021-02-09 19:00
has joined #pactflow

siddhardhan
2021-02-09 20:21
has joined #pactflow

matt.fellows
2021-02-10 00:20
huh, interesting

matt.fellows
2021-02-10 00:21
Can you please share (or DM me, send to ) with some more details so we can investigate?

lars.hisken916
2021-02-10 08:08
has joined #pactflow

pauligoe10
2021-02-10 08:19
has joined #pactflow

tusharvarm
2021-02-10 09:38
has joined #pactflow

igorsharf
2021-02-10 10:39
has joined #pactflow

kieran
2021-02-10 17:13
has joined #pactflow

poward
2021-02-10 18:17
has joined #pactflow

steven.beaver.retail
2021-02-10 21:08
ok, I messaged you directly

ckhadilkar
2021-02-10 21:16
has joined #pactflow

neild
2021-02-11 18:53
has joined #pactflow

painenigowthami
2021-02-11 22:32
has joined #pactflow

stephenkilbourn
2021-02-11 23:02
has joined #pactflow

tcarlson
2021-02-11 23:05
has joined #pactflow

r.strauch
2021-02-12 10:15
has joined #pactflow

ztlboy05
2021-02-12 14:57
has joined #pactflow

smith260194
2021-02-12 15:22
has joined #pactflow

dabfleming
2021-02-12 20:34
has joined #pactflow

prasanthp
2021-02-13 00:45
has joined #pactflow

bhardwajdiwakar
2021-02-14 22:38
has joined #pactflow

hiteshpatadia
2021-02-15 06:29
has joined #pactflow

vikrant.sarkaniya
2021-02-15 13:31
has joined #pactflow

lemitrou
2021-02-15 14:20
has joined #pactflow

adam_figgins
2021-02-16 08:05
Hi guys. I'm experiencing some unexpected behaviour with verifying WIP / Pending pacts on the provider side. Using our current config in http://Pact.Net, I deleted an integration from the Pactflow UI while developing (to clean house while testing), and assumed this would also remove all the contracts that were part of that integration. When I tried the workflow again, I hadn't modified the consumer side contract code in any way, published the Pact using the same integration details, and couldn't get the provider side to pick up my 'new' WIP Pact. The UI in Pactflow also states it was still in an unverified state. It wasn't until I modified the consumer contract code that the provider would see this as an unverified contract and pick it up at a WIP pact. I assume that there is still some record behind the scenes that holds on to the old contracts from the deleted integration, which is why this happened. Thought I would raise this here instead of creating a new issue in case you already knew about this / I missed something in the docs that mentions this behaviour.

helloraj
2021-02-16 08:09
has joined #pactflow

wesleythomaswilliams
2021-02-16 10:57
Any folks here using Pact Flow Enterprise? I have a question around how teams work in respect to publishing pacts so that they appear in the team space.

matt.fellows
2021-02-16 12:58
Hmmm I'll confirm this behaviour tomorrow when I'm back online. I think it should work as described

matt.fellows
2021-02-16 12:59
So the application needs to be added to the team also, otherwise it lands in the default team.

matt.fellows
2021-02-16 12:59
You can use our Terraform provider if helpful to configure teams, perms, applications etc

matt.fellows
2021-02-16 13:00
Otherwise an API call to create the pacticipant and then assign via the team's page should work

wesleythomaswilliams
2021-02-16 16:53
Matt, it looks like the API only supports GET, PATCH, DELETE for Pacticipants, no POST. So is the only way to do this to publish a pact for each of our services and then move them over?

jamesmlucas
2021-02-16 19:29
has joined #pactflow

gabe707
2021-02-16 20:31
has joined #pactflow

wangpei9679
2021-02-16 21:29
has joined #pactflow

matt.fellows
2021-02-16 22:53
```curl -X POST -H"Content-Type: application/json" -v -H"Authorization: Bearer $PACT_BROKER_TOKEN" $PACT_BROKER_BASE_URL/pacticipants/ -d '{"name":"WiffleWaffle"}'```

matt.fellows
2021-02-16 22:53
that should do it!

matt.fellows
2021-02-16 22:54
it also supports `RepositoryURL` in the object

geir
2021-02-16 23:03
has joined #pactflow

bethskurrie
2021-02-17 00:21
With a lower case r

bethskurrie
2021-02-17 00:23
@wesleythomaswilliams we've got plans to redesign the Pactflow UI with an application centric (rather than pact centric) focus soon (if provider driven contracts gets good feedback). When that happens, we'll be adding screens for pacticipant CRUD.

bethskurrie
2021-02-17 00:24
@adam_figgins can you describe how you deleted the integration?

soruma.net
2021-02-17 05:58
has joined #pactflow

adam_figgins
2021-02-17 08:30
Hi @bethskurrie. I used the 'Delete Integration' option from the Pactflow UI:

bethskurrie
2021-02-17 08:31
Hm. I would expect that to delete all the results.

bethskurrie
2021-02-17 08:32
I'll see if I can replicate it tomorrow (it's evening in Australia)

adam_figgins
2021-02-17 08:32
I'm just doing some more digging into this at the moment, as I notice that actually the provider side is no longer running against WIP / pending Pacts at all. I've noticed that we upgraded the http://Pact.Net nuget packaged to 2.61 from 2.5.5, so rolling back to check this isn't the issue

matt.fellows
2021-02-17 08:33
It definitely deletes all of the pacts, because I regularly do a demo and have to use that feature to show the ?how to do it from scratch? flow

bethskurrie
2021-02-17 08:33
good idea.

matt.fellows
2021-02-17 08:33
So it was more the WIP/Pending behaviour I wanted to confirm, just to clarify. But Beth is here, and anything she says is definitive :stuck_out_tongue:

bethskurrie
2021-02-17 08:34
No pressure. Sometimes I feel like the code gets a mind of it's own.

matt.fellows
2021-02-17 08:34
:slightly_smiling_face:

bethskurrie
2021-02-17 08:34
There was seriously some emergent behaviour in the matrix!

adam_figgins
2021-02-17 08:34
:slightly_smiling_face: Thanks guys. I'll let you know what I find

wesleythomaswilliams
2021-02-17 09:06
Thanks both I'll give this a go

wesleythomaswilliams
2021-02-17 09:10
That curl command appears to work, thanks :slightly_smiling_face:

matt.fellows
2021-02-17 09:10
Looks like me might need to document that a little better

matt.fellows
2021-02-17 09:10
I think it?s probably intuitive that any publish inherits the team permissions, but there is likely a good reason it doesn?t

matt.fellows
2021-02-17 09:10
@bethskurrie may care to comment further

adam_figgins
2021-02-17 09:12
I've managed to find the root cause. It was a case of too much code changing at once, so it was hard to determine the problem. Turns out it was the way we were implementing the dispose pattern in the xUnit fixture. We switched to using the IAsyncDisposable interface and were stopping the pact webhost in DisposeAsync, rather than in the synchronous Dispose method. I guess the DisposeAsync calls were running before the webhost had chance to finish fetching and running all the WIP pacts, cutting it off prematurely.

matt.fellows
2021-02-17 09:12
good to know, and thanks for the followup

adam_figgins
2021-02-17 09:14
No problem

therimpact
2021-02-17 12:30
has joined #pactflow

gabe707
2021-02-17 18:26
```PactBroker::Client::PublicationTask.new do | task | task.consumer_version =1.0 task.pattern = /spec/pacts/*.json' # optional, default value is 'spec/pacts/*.json' task.pact_broker_base_url = 'https://testbasic.pactflow.io' task.tag_with_git_branch = true|false PACT_BROKER_TOKEN='dsfdfsdyK693Dhh7kjg' # task.pact_broker_token = 'dsfdfsdyK693Dhh7kjg' # Bearer token end``` _*I have a blocker. when i run*_ -- >rake pact:publish _*I get an undefined method for pact_broker_token*_ NoMethodError: undefined method `pact_broker_token=' for #<PactBroker::Client::PublicationTask:0x00007ff836a143f8> Did you mean? pact_broker_base_url= when I comment out *# task.pact_broker_token = 'dsfdfsdyK693Dhh7kjg'* *I get an error of authentication:* Publishing pact to pact broker at https://testbasic.pactflow.io Failed to publish l pact due to error: PactBroker::Client::Error - Authentication failed One or more pacts failed to be published

gabe707
2021-02-17 18:37
this is the rakefile. Does anyone see anything wrong here

andrzej.igielski
2021-02-17 21:41
has joined #pactflow

mikewagner21
2021-02-18 03:15
has joined #pactflow

khandelwalbhushan
2021-02-18 08:10
has joined #pactflow

aniket.agarwal
2021-02-18 09:21
has joined #pactflow

arpit.modani
2021-02-18 09:43
has joined #pactflow

byronth
2021-02-18 11:45
has joined #pactflow

isa.levine
2021-02-18 23:37
has joined #pactflow

artur
2021-02-19 06:43
is it possible to make the results to be visible publicly on pactflow? Working on a open-source project I want the contributors to be able to browse the results

matt.fellows
2021-02-19 06:47
It?s not currently supported, albeit we?d like to make that possible also for additional reasons

matt.fellows
2021-02-19 06:48
for example, http://test.pactflow.io is our ?legacy? Pactflow account that uses basic auth (so we can easily share the creds), but it?s not a very nice experience and doesn?t really show off what we do very well. If you head to http://testdemo.pactflow.io it?s the same underlying data with the better experience - but we don?t have a way (yet) of making it public

matt.fellows
2021-02-19 06:48
I believe now that our RBAC work has been completed, it?s not a big leap to make it read-only visible, at least

artur
2021-02-19 06:55
:+1: there is already a read-only token, so a developer could get the results on the local machine, or see them in text-form in CI. so its not a must-have for us, but having the results in a nice web UI would be just an extra.

wilkinsweiqiangliang
2021-02-19 07:09
@matt.fellows @uglyog Hey guys, do we have read timeout issue in pact?

wilkinsweiqiangliang
2021-02-19 07:09
@bethskurrie Thanks


wilkinsweiqiangliang
2021-02-19 07:19
seems previous issue is with `can-i-deploy`

wilkinsweiqiangliang
2021-02-19 07:19
will try again later today

matt.fellows
2021-02-19 07:38
It says localhost

matt.fellows
2021-02-19 07:39
Am I missing something there?

r.strauch
2021-02-19 08:41
@r.strauch has left the channel

matt.fellows
2021-02-19 10:05
On closer inspection, it looks like maybe it?s a docker issue? Did you get to the bottom of it?

brian.pfretzschner
2021-02-19 10:15
has joined #pactflow

wilkinsweiqiangliang
2021-02-20 01:13
you are right, seems its Buildkite issue, It work after retry today.

wilkinsweiqiangliang
2021-02-20 01:13
Thanks for investigating

matt.fellows
2021-02-20 01:28
:thumbsup:

matt.fellows
2021-02-20 01:28
Was worried - two days in a row issues on your account would not be good!

matt.fellows
2021-02-20 01:28
glad to hear

wilkinsweiqiangliang
2021-02-20 01:28
Thanks again, enjoy your lovely weekend

matt.fellows
2021-02-20 01:31
you too!

chitra.adikesavan
2021-02-20 15:50
has joined #pactflow

bethskurrie
2021-02-21 04:15
I do actually have code for "public" brokers that allow anyone from github or google to log in, but it's on a branch and hasn't been released yet. cc: @matt.fellows

matt.fellows
2021-02-21 04:20
yep, I?ll set a reminder to chat about it tomorrow Beth.

ankita.soni
2021-02-22 07:26
has joined #pactflow

jacek.helper
2021-02-22 08:03
has joined #pactflow

seanw122
2021-02-22 15:36
has joined #pactflow

akennedy
2021-02-22 15:54
has joined #pactflow

esimpson
2021-02-22 16:42
has joined #pactflow

dagrawal
2021-02-22 17:24
has joined #pactflow

venkata.pro
2021-02-22 21:47
has joined #pactflow

jordan.levin
2021-02-23 19:14
has joined #pactflow

francesco.latorre
2021-02-24 05:59
has joined #pactflow

aniket.g2185
2021-02-24 09:13
has joined #pactflow

wesleythomaswilliams
2021-02-24 10:31
So I have a small problem. I'm migrating our services from one Pact Flow instance to another. In the majority of cases, the services are both consumers and providers and run both sets of pact tests as part of the unit test phase of our pipeline. This all works fine, until I redirect my pipeline to the new instance of Pact Flow. I'm doing this one service at a time, so if we assume Service 1 is both a consumer and a provider, the pipeline fails when redirected to the new Pact Flow instance because provider tests fail (because there are no contract(s) from it's consumer(s) in the new instance). This then also prevents the publication of the consumer pacts for this service as that stage of the pipeline comes after the tests have run (and passed, which they don't). The workaround seems to be to disable my provider tests, but I wondered if Pact provides a simple solution beyond me commenting out tests in each service until all the initial versions of the contracts have been published?

sundaresank360
2021-02-24 12:12
has joined #pactflow

jhawthor
2021-02-24 15:18
has joined #pactflow

chris.r.thomas
2021-02-24 16:54
has joined #pactflow

peter.cook
2021-02-24 17:05
has joined #pactflow

jayeshguru81
2021-02-24 18:34
has joined #pactflow

ben.kirberger
2021-02-24 19:16
has joined #pactflow

ben.kirberger
2021-02-24 20:30
Hi team, I?m currently working through the CI/CD tutorial and I?m having an issue at step 5 here: https://docs.pactflow.io/docs/workshops/ci-cd/workshop/verifying-feature-pacts > 5. On your local machine, run `TRAVIS_BRANCH=master make test` - you will now see that the `feat/new-field` pact is not included, as it is no longer a work in progress pact. I show the `feat/new-field` tag in pactflow has changed to verified (from step 4), however, when running `TRAVIS_BRANCH=master make test` now, I _still_ see it listed as unverified in logs. If I click on the example URL it shows in the logs, it takes me to the pactflow `feat/new-field` pact, and shows as verified! How can this be? ```DEBUG: The pact at <EXAMPLE URL HERE> = is being verified because it is a 'work in progress' pact (ie. it is the pact for the latest version of pactflow-example-consumer tagged with 'feat/new-field' and is still in pending state). Read more at https://pact.io/wip```

wesleythomaswilliams
2021-02-24 20:37
I've realised I do actually have a service which is effectively just a consumer and I'm working backwards from this point through our services, which is working so far.

bethskurrie
2021-02-25 03:45
@ben.kirberger that doesn't sound right.

bethskurrie
2021-02-25 03:46
The pending state is based on the provider branch (for which the tag is used as a proxy). Unfortunately, for the sake of simplicity, I didn't include the provider tag name for which the pact was pending in the output.

bethskurrie
2021-02-25 03:46
What are you seeing on CI?

ben.kirberger
2021-02-25 03:53
Agh, I?m afraid I just continued the tutorial and tried to just carry on. Unfortunately I didn?t take down the state in CI at the time, sorry. :disappointed:

ben.kirberger
2021-02-25 03:53
The rest of the tutorial went swimmingly, however.

bethskurrie
2021-02-25 03:53
That's good to hear!

m.stephkan
2021-02-25 05:30
has joined #pactflow

matt.fellows
2021-02-25 07:45
Ahh a variation of this came up the other day

matt.fellows
2021-02-25 07:45
I can't remember the way to solve it

matt.fellows
2021-02-25 07:47
I think one approach is to query in advance if there are consumers and only do the check if that's true. I think there is a flag that says "don't fail if no consumers found"

matt.fellows
2021-02-25 07:48
@bethskurrie any ideas?

matt.fellows
2021-02-25 07:49
We could also look to migrate your data for you @wesleythomaswilliams

matt.fellows
2021-02-25 07:49
But there might be a data race if not done carefully

stephen.tjasink
2021-02-25 08:23
has joined #pactflow

wesleythomaswilliams
2021-02-25 09:06
It's ok, I'm a demon, I've migrated them all :smile:, however, a don't fail if no consumers flag would be awesome.

matt.fellows
2021-02-25 10:39
When I'm at my desk I'll do a little search back thru slack history to see if I can find

beatrizwaclawek
2021-02-25 20:27
has joined #pactflow

zhoutianli1234
2021-02-25 21:09
has joined #pactflow

zhoutianli1234
2021-02-25 21:15
Hi, we are using Azure pipelines for our development. From what we tried, we get the verification results using can-i-deploy. However, to see the details we have to go into the url and see it from the Pactflow UI. Is there a way to get the detailed verification results? For example, something similar to the CLI like can-i-deploy but gives u detailed results, or a way to export a test results report? Ideally a way to display the details on the azure pipeline.

bethskurrie
2021-02-25 21:16
@zhoutianli1234 no, but you can request a feature at http://pact.canny.io

bethskurrie
2021-02-25 21:16
Or you can run the can-i-deploy query and output it as JSON, then fetch the results endpoints yourself to print them out.

matt.fellows
2021-02-25 21:49
What do you want to use it for @zhoutianli1234?

travis.day
2021-02-26 04:06
has joined #pactflow

andrew.cunningham
2021-02-26 11:13
has joined #pactflow

brianmasschaele
2021-02-27 13:27
has joined #pactflow

pedroefajardo_pactio
2021-02-27 17:18
has joined #pactflow

bethskurrie
2021-02-28 22:51
@wesleythomaswilliams @matt.fellows when I had to migrate brokers at a previous client, I wrote a little script which queried the latest pacts endpoints and copied the pacts over.

bethskurrie
2021-02-28 22:52
I'm sure there's a "no fail" annotation for the JVM, and I don't think the ruby standalone fails if there are no pacts.

matt.fellows
2021-02-28 22:58
Would it be worth publishing that utility if you have it Beth?

bethskurrie
2021-02-28 22:59
@wesleythomaswilliams there's some missing documentation for creating pacticipants. I've got that PR open for adding new fields to the pacticipant, so I'll make sure I update it.

bethskurrie
2021-02-28 23:00
We can't automatically assign a pacticipant to a team, because a user may be a part of many teams, and we don't know which team the pacticipant should belong to @wesleythomaswilliams

bethskurrie
2021-02-28 23:01
When it gets created, we assign the "created_by" user, and until the pacticipant gets assigned to a team, the creator user has the admin privilege for the pacticipant.

dominic_herrmann
2021-03-01 06:54
has joined #pactflow

wesleythomaswilliams
2021-03-01 09:21
Thanks @bethskurrie

matthew.long
2021-03-02 14:08
has joined #pactflow

tmoncm
2021-03-02 17:17
has joined #pactflow

phoenixcampos01
2021-03-02 21:25
has joined #pactflow

hugh.paul.mcgowan
2021-03-03 17:52
has joined #pactflow

normanrs
2021-03-04 11:18
has joined #pactflow

kmckeever
2021-03-04 14:50
Hey there - I am using pactjs/Jest to run my tests, and publishing to Pactflow from within the project using `Publisher(opts).publishPacts()`. We're using GitLab as our CI provider, and have a stage to execute and publish the Pact tests. While the tests execute successfully (indicating success for all tests and suites), I see the following error after each test run: `Pact Binary Error: /builds/myProj/myProjDir/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.35/pact/lib/ruby/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /builds/myProj/myProjDir in PATH, mode 040777` The failure comes when we attempt to publish to Pactflow. While I am able to publish from my local (Windows) dev machine, I am seeing the following error when publishing through GitLab: ``` Could not publish pact: /builds/myProj/myProjDir/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.35/pact/lib/ruby/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /builds/myProj/myProjDir in PATH, mode 040777 Error making request - Net::HTTPServerException 403 "Forbidden" /builds/myProj/myProjDir/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.35/pact/lib/vendor/ruby/2.2.0/gems/pact_broker-client-1.35.0/lib/pact_broker/client/base_client.rb:109:in `put', attempt 1 of 3``` I attempted to resolve this by running the command `chmod go-w /builds/myProjc/myProjDir`, but to no avail. Does anyone have any possible insight?

joel.whalen
2021-03-04 15:20
try putting `sudo` on that chmod command

kmckeever
2021-03-04 15:39
`sudo` does not appear to be available on our gitlab runner. I was hoping to avoid having to do command gymnastics to get the Pact tests to run successfully, if possible. :confused:

jayson.bailey
2021-03-04 19:18
has joined #pactflow

uglyog
2021-03-04 22:05
The warning is probably a red herring, `403 "Forbidden" ` seems to be the actual problem. Check you have a valid token.

kmckeever
2021-03-04 22:21
Hey there, @uglyog - I had the GitLab job print out the token value pulled from my environment variable and verified it's the same token I use locally with success.

uglyog
2021-03-04 22:24
You'll probably need to enable debug logs to see what is going on with the GitLab runner. @matt.fellows might have some ideas to help.

matt.fellows
2021-03-04 22:48
The insecure world writable dir is a red herring indeed, you can ignore that

matt.fellows
2021-03-04 22:52
`403` is an error that means you?re _authenticated_ but not _authorized_ to perform the action

matt.fellows
2021-03-04 22:52
so that means you could be using a read-only token (so you can?t publish) or the role associated with the token is not allowed to publish

matt.fellows
2021-03-04 22:52
if you would kindly share debug logs to me offline, or drop it to we can take a look

matt.fellows
2021-03-04 22:53
the account name would help also, as we can check our logs

kmckeever
2021-03-05 00:16
Hey there @matt.fellows thanks for the follow-up! I verified it's the read/write token we're using in CI. I can try and enable the debug logs, but may be limited in what I can do at the moment. I am happy to share the account name here if you are able to delete the message after receiving it, or I can shoot you a message at the above email. Whichever is easiest!

matt.fellows
2021-03-05 00:23
just drop me a DM and we can go from there if you like

wesleythomaswilliams
2021-03-08 12:09
Is there any reason why the create button for webhooks in pact flow wouldn't be working? Our enterprise instance won't allow me to create them (when it previously did). I've also checked the pact hosted instance we still have a license for and the button is disabled there too. @bethskurrie @matt.fellows

alan.hanafy
2021-03-08 19:41
Is there some documentation or example of a webhook for when a consumer publishes a contract that will trigger a verify against all providers?

thanuxxxx
2021-03-08 21:19
I think, you need one webhook for every consumer provider set. If you have 1 consumer and 10 providers, I think you still need 10 webhooks since every provider has different POST URL

matt.fellows
2021-03-08 21:52
You can definitely create a webhook that triggers for a given consumer, but the target of that webhook would need to know how to trigger all providers.

matt.fellows
2021-03-08 21:53
Usually you create one webhook per provider, omitting the consumer name (so then, any consumer of that provider will trigger the verification build)

matt.fellows
2021-03-08 21:53
Unless I?m misunderstanding something?

matt.fellows
2021-03-08 21:54
hmmm that sounds like a bug perhaps. What does the browser console say? Are there any errors there?

matt.fellows
2021-03-08 21:55
Just wondering if perhaps there?s an error at the API or some bug in the UI

bethskurrie
2021-03-08 21:56
You're missing the URL @wesleythomaswilliams

matt.fellows
2021-03-08 21:56
ah, lol

matt.fellows
2021-03-08 21:56
the URL is in the Headers field

matt.fellows
2021-03-08 21:56
Probably needs a more prominent error message

matt.fellows
2021-03-08 21:57
(FYI as a backup next time I know it?s not ideal, but you could create it via the API or CLI. The `pact-broker create-webhook` command could be used to circumvent it)

bethskurrie
2021-03-08 21:57
Matt's right, you usually create one webhook per provider, because the verification build will be the same for each consumer.

alan.hanafy
2021-03-08 22:05
Right I've done that so far but I'm having trouble when a new consumer contract is published. If I understand correctly I need to run the provider verification after the new contract is published?

alan.hanafy
2021-03-08 22:07
The consumer pipeline is currently running tests, publishing contract and then tagging version but I see afterwards that The contract isn't verified and have to manually run provider verification afterwards (for any/all providers that the new contract changes)

wesleythomaswilliams
2021-03-08 22:46
Oh god, what a muppet. Whenever I see that URL section I always read it like a Title and totally miss that URL and Headers are a separate thing.

bethskurrie
2021-03-08 22:58
You're not the only one - it trips people up a lot. We need to do something to make it more obvious.

bethskurrie
2021-03-08 22:59
It's the way the UI library we use styles the text input. We can probably add a custom style to make it more obvious.

bethskurrie
2021-03-08 23:00
@alan.hanafy have you read this? https://docs.pact.io/pact_nirvana/step_4

alan.hanafy
2021-03-08 23:11
Thanks @bethskurrie I'll take a read tonight

mjsmcp
2021-03-08 23:46
has joined #pactflow

javier.garcia_cotado
2021-03-09 21:52
has joined #pactflow

akos.csurai
2021-03-10 13:39
has joined #pactflow

testme2020testme
2021-03-10 14:12
has joined #pactflow

tommy.mirchandani
2021-03-10 17:13
has joined #pactflow

varinderjitkaur13
2021-03-11 01:46
has joined #pactflow

krcl.dev
2021-03-11 05:11
has joined #pactflow

krishnaraoveera1294
2021-03-11 17:53
has joined #pactflow

raghavendra.kalakonda
2021-03-11 23:08
has joined #pactflow

raghavendra.kalakonda
2021-03-11 23:22
Hello Everyone, Has anyone used Pact with Azure event hub please?

andries.spies
2021-03-12 07:25
has joined #pactflow

kamil.klima
2021-03-12 11:38
has joined #pactflow

2021-03-12 21:28
Notification from *Pactflow* :ghost:

lswanborough
2021-03-15 00:50
has joined #pactflow

2021-03-15 10:57
Notification from *Pactflow* :ghost:

alan.hanafy
2021-03-15 19:30
assuming this is the right channel for this question. besides the HAL browser in pactflow, and this blog post: https://pactflow.io/blog/audit-api/ is there anything else on using the audit api? is there any way to view/retrieve the most recent logs? is there any way to GET the audit logs reverse chronologically? Is there any way to filter on timestamp for say only things that happened today (or on a particular year-month-day etc)? i understand that the idea for this endpoint is for some siem to ingest it but I was hoping to be able to review the logs for certain events without having to setup a siem. if i _do_ have to setup a siem, is there any examples on how to set it up with say ELK or something free? I dont mean how to setup ELK, i just mean the configuration examples for logstash or something

don.tobias
2021-03-15 19:35
has joined #pactflow

2021-03-16 12:03
Notification from *Pactflow* :ghost:

sagar.kathuria
2021-03-17 04:25
has joined #pactflow

shao.sum
2021-03-17 08:35
has joined #pactflow

2021-03-17 21:30
Notification from *Pactflow* :ghost:

riddhichopra
2021-03-18 01:28
has joined #pactflow

anu.de
2021-03-18 02:28
has joined #pactflow

2021-03-18 04:00
Notification from *Pactflow* :ghost:

sreyaslj
2021-03-18 04:25
has joined #pactflow

2021-03-18 04:58
Notification from *Pactflow* :ghost:

arvind1017
2021-03-18 22:48
has joined #pactflow

sushilvc84
2021-03-19 00:30
has joined #pactflow

tejakoshti7
2021-03-19 06:26
has joined #pactflow

matt.fellows
2021-03-19 11:47
Hi Alan, apologies, I saw this and forget (and then it got lost down the pile)

matt.fellows
2021-03-19 11:47
all good questions

matt.fellows
2021-03-19 11:50
We created that endpoint on the request of a specific customer who wanted to do it that way (and to be honest, it?s not used all that much from the data I can see). so if you had specific needs for your use case, we?d consider enriching the model

matt.fellows
2021-03-19 11:51
there is the `from` parameter, but that only sets the start point from the UUID, not by date

matt.fellows
2021-03-19 11:53
Filtering by date, type and other properties should be fairly doable. Would you kindly raise a feature request here: https://github.com/pactflow/roadmap/issues?

yannick.adler
2021-03-19 12:44
has joined #pactflow

smith260194
2021-03-19 17:40
@smith260194 has left the channel

aelse
2021-03-19 23:54
has joined #pactflow

eric2323223
2021-03-20 01:35
has joined #pactflow

jordan.r.stewart
2021-03-20 16:07
has joined #pactflow

tmorrison
2021-03-21 21:45
has joined #pactflow

a.chandrasekaran
2021-03-22 00:50
has joined #pactflow

maksym.motornyi
2021-03-22 11:50
has joined #pactflow

gareth.somerville
2021-03-22 12:10
has joined #pactflow

joseph.method
2021-03-22 19:55
has joined #pactflow

dennyg666
2021-03-22 20:54
has joined #pactflow

me1295
2021-03-23 00:15
has joined #pactflow

anchit.99
2021-03-23 09:04
has joined #pactflow

2021-03-23 12:30
Notification from *Pactflow* :ghost:

wola.adedeji
2021-03-23 16:25
has joined #pactflow

kenny.shobowale
2021-03-23 16:38
has joined #pactflow

wesleythomaswilliams
2021-03-23 19:17
Interested about this @matt.fellows, our PRs in github are dependent on the build status. So if pact verification fails, the build will fail and block the PR merge. Trying to work out any benefit from getting pact verification status separately.

matt.fellows
2021-03-24 00:14
Yeah, so you would need to consider the use of it. That?s a common strategy (checks must be green before a merge can happen). So if you curretnly have a flow that would allow a Pact contract to be broken before a merge, this would break that process.

matt.fellows
2021-03-24 00:14
For most cases, feature branches shouldn?t be merged into main until the pact is passing, but there are of course other flows here. This post is really for the ?standard? scenario

ragarwal
2021-03-24 02:10
has joined #pactflow

anbu.pandian
2021-03-24 11:54
has joined #pactflow

anbu.pandian
2021-03-24 13:45
is there someone who can assist me? I am trying to run pact-python from the gitrepo.

anbu.pandian
2021-03-24 13:45
Getting an error as below

anbu.pandian
2021-03-24 13:46
Can someone help please?

rachel.barton
2021-03-24 19:12
has joined #pactflow

james522
2021-03-24 22:06
has joined #pactflow

matt.fellows
2021-03-24 23:13
At what step are you getting that error?

matt.fellows
2021-03-24 23:13
invalid SSL smells like me like you have an internal network proxy that is man-in-the-middle-ing the request, presenting an invalid certificate, whilts trying to download a dependency

anne.schuth320
2021-03-25 07:49
has joined #pactflow

james.shirtcliffe
2021-03-25 12:04
has joined #pactflow

serhii.makarenko
2021-03-25 12:55
has joined #pactflow

mashabudryte
2021-03-25 14:35
has joined #pactflow

matthew.simon.barnes_
2021-03-25 16:08
has joined #pactflow

gayatree.eee
2021-03-26 12:58
Can I get the list of REST APIs used by pactflow?

jose.manzano
2021-03-26 14:27
has joined #pactflow

chris.faulkner
2021-03-26 16:13
has joined #pactflow

bryanw
2021-03-26 18:46
has joined #pactflow

bethskurrie
2021-03-26 22:41
@gayatree.eee I'm not sure if I understand your question. Do you mean, a list of the endpoints that are available in Pactflow? We don't currently document them for public use, though there is a terraform provider here https://docs.pact.io/pact_broker/terraform_provider/

matt.fellows
2021-03-26 23:25
The API follows a hypermedia based design which is somewhat self documenting, so if you issue a GET to the root resource requesting the HAL media type, you can follow the resources from there. What are you trying to do?

kerem.durak
2021-03-29 08:34
has joined #pactflow

dave.clissold
2021-03-29 12:40
has joined #pactflow

sidhant.bhayana.15
2021-03-29 18:34
has joined #pactflow

crhawkins85
2021-03-30 21:02
has joined #pactflow

pranav.gore
2021-03-31 01:58
has joined #pactflow

harsha6988
2021-03-31 12:19
has joined #pactflow

leixu
2021-03-31 14:42
has joined #pactflow

matthew.brown
2021-03-31 15:15
has joined #pactflow

oleksandr.tryshchenko
2021-03-31 19:54
has joined #pactflow

phelantomas
2021-04-01 13:13
has joined #pactflow

ktogias
2021-04-01 20:04
has joined #pactflow

balaji.sivakumar
2021-04-02 05:41
has joined #pactflow

uryadov212
2021-04-05 20:52
has joined #pactflow

soumya.aithal966
2021-04-05 22:45
has joined #pactflow

sheyan.rizfee
2021-04-06 00:55
has joined #pactflow

piotr
2021-04-06 09:24
has joined #pactflow

gayatree.eee
2021-04-06 11:14
Hi, what all roles have permission to create system account in pactflow. Please share any doc having these details. Thanks.

dmitry.korolev
2021-04-06 11:47
has joined #pactflow

matt.fellows
2021-04-06 11:50
Currently by default only the admin

matt.fellows
2021-04-06 11:50
Were adding a feature where a team admin could create system accounts scoped to their team


matt.fellows
2021-04-06 11:51
Note you can change which role has what permission or create customer roles via the API or the Terraform provider

gayatree.eee
2021-04-06 12:18
Thanks Matt

matt.fellows
2021-04-06 12:23
Were those docs helpful? If not, we?ll get them updated to be more so. Let me know what you were expecting and i?ll share with the team

sravyavadrevu988
2021-04-06 20:40
has joined #pactflow

johnnycareer
2021-04-06 21:34
has joined #pactflow

danil.nurgaliev
2021-04-07 12:26
has joined #pactflow

gtsifrikas
2021-04-08 08:53
has joined #pactflow

kanapuramamarnath
2021-04-08 09:18
has joined #pactflow

nathan.deamer
2021-04-08 09:41
:wave: My username and password hasn't come through yet (~ 1h). Is it because I selected the "Use github organisation" option and something needs configuring?

matt.fellows
2021-04-08 10:12
Should've still received them, have you checked spam?

matt.fellows
2021-04-08 10:15
Ah, it's the same email address as your other account so the creds are the same. I thought we updated the registration email to indicate this but it seems not.

matt.fellows
2021-04-08 10:17
Users are global in the platform

nathan.deamer
2021-04-08 12:20
Feel free to delete the old ones - setting it up for real and about to start spiking with the teams. Can you help enable github on the free tier? I am not seeing any of these options https://pactflow.io/blog/github-and-google-authentication-now-included-in-our-free-tier/

matt.fellows
2021-04-08 12:34
should be enabled now Nathan

c.pavan1986
2021-04-09 08:55
Do we have environment variable to specify postgres port for pactflow docker image. Actually we are running postgres on other than default port 5432. Using PACTFLOW_DATABASE_URL is exposing the password in env variable as plain text, we are thinking of using kubernates/openshift secret object. I have tried using PACTFLOW_DATABASE_PORT, assuming it would similar to the one thats present for pactbroker (https://docs.pact.io/pact_broker/docker_images/pactfoundation/ : PACT_BROKER_DATABASE_PORT). Please suggest

matt.fellows
2021-04-09 08:59
Assuming you're using our enterprise docker container via http://quay.io, right?


matt.fellows
2021-04-09 09:00
Given that you'd need to use a secret for the password anyway, is it a big issue for the secret to just be the full URL?

c.pavan1986
2021-04-09 09:01
yes we are using enterprise docker, we could try with whole url being secret. But is there any plan to add environment variable for PORT?

matt.fellows
2021-04-09 09:23
No plans I'm aware of. @bethskurrie might know why it's not currently exposed. You could raise an issue on our roadmap requesting it if you need

matt.fellows
2021-04-09 09:24
When I'm in front of a computer later I'll check the code base, it might just be undocumented

c.pavan1986
2021-04-09 09:46
So, if we wanted to connect to postgres running on other than default port (5432) we shall be using the PACTFLOW_DATABASE_URL right? :password@machinename:port/databasename

matt.fellows
2021-04-09 10:05
Yep!

arnaud.dutrillaux
2021-04-09 10:59
has joined #pactflow

gsinghania
2021-04-09 15:40
has joined #pactflow

souravmohanty35
2021-04-09 16:34
has joined #pactflow

itzdavey
2021-04-09 17:23
has joined #pactflow

c.pavan1986
2021-04-10 05:19
We would like to have a environment variable exposed. As we cannot use the default port or the full connection string as secret. Can you please do the needful..

matt.fellows
2021-04-10 08:24
How will you secure the password if you can't secure the full connection string?


bethskurrie
2021-04-10 08:26
Easily done.

bethskurrie
2021-04-10 08:27
Also, there is some logic to hide the password in the logging. Someone recently added the logic to hide the password in the OSS DATABASE_URL, so we can port that to Pactflow.

c.pavan1986
2021-04-10 09:21
We can secure the full connection string (using kubernates secret), we would not be doing it as it does not make sense to secure the entire connection string. I think its logically better to decouple the have separate variable serving each of its purpose.

laura.edington
2021-04-13 17:45
has joined #pactflow

liam.mcdermott
2021-04-13 22:38
has joined #pactflow

wedlaaa
2021-04-14 13:33
has joined #pactflow

wderksen
2021-04-14 22:26
has joined #pactflow

mail_4brad
2021-04-15 02:34
has joined #pactflow

mail_4brad
2021-04-15 10:12
@mail_4brad has left the channel

2021-04-15 11:11
Notification from *Pactflow Contract Testing Platform* :ghost:

goncalosamuel
2021-04-15 15:08
has joined #pactflow

matthew.hall
2021-04-15 17:36
has joined #pactflow

raony
2021-04-15 19:21
has joined #pactflow

gupta.ratnesh9
2021-04-16 04:48
has joined #pactflow

greg595au
2021-04-16 10:00
has joined #pactflow

manel_ben_yahia
2021-04-16 13:59
has joined #pactflow

2021-04-17 00:49
Notification from *Pactflow Contract Testing Platform* :ghost:

maxence
2021-04-17 11:07
has joined #pactflow

kranti.deep
2021-04-17 14:17
has joined #pactflow

aaronw153
2021-04-17 21:42
has joined #pactflow

dwmahieddine
2021-04-19 12:44
has joined #pactflow

garrettmichael
2021-04-19 18:34
has joined #pactflow

daniel.kalleward
2021-04-20 08:16
has joined #pactflow

mattias.persson
2021-04-20 12:45
has joined #pactflow

martin.eklund
2021-04-20 12:47
has joined #pactflow

nathan.deamer
2021-04-20 14:18
Are system accounts available on the free pactflow broker? https://pactflow.io/blog/system-accounts/

enda.brody
2021-04-20 17:37
has joined #pactflow

cristian.moisa
2021-04-20 18:25
has joined #pactflow

matt.fellows
2021-04-20 22:06
I don't think so ( see https://pactflow.io/pricing/) but drop us a line and we'll give you the ability

matt.fellows
2021-04-20 22:06
The reason was historical, we should allow that now

darccide
2021-04-21 01:35
has joined #pactflow

matt.fellows
2021-04-21 05:04
We?ve just removed the limit for all free tier users - you should now have the ability to create a system user, as per the Team plans

stain.witness
2021-04-22 02:43
has joined #pactflow

oleksandra.pishcheiko
2021-04-22 08:31
has joined #pactflow

akos.csurai.4github
2021-04-22 10:01
has joined #pactflow

christosbouloumpasis
2021-04-22 10:38
has joined #pactflow

temanibeck
2021-04-22 16:04
has joined #pactflow

michael_swiss
2021-04-22 21:04
has joined #pactflow

dawoud.sheraz
2021-04-23 09:34
has joined #pactflow

adriano.tanoue
2021-04-23 12:01
has joined #pactflow


aparnachaudhari
2021-04-23 20:40
are there more resources that talk/walk through bi-directional contract testing that is coming down the pipeline?

matt.fellows
2021-04-24 02:11
We haven't officially launched the feature yet, as it's still in developer preview and we're shaping and tweaking based on feedback. If you like, we can setup a session with the team to go through it in more detail and provide support if you'd like to try it out

saurabh.goel
2021-04-24 20:10
has joined #pactflow

cemal.onder
2021-04-25 12:22
has joined #pactflow

richard.forjoe
2021-04-26 00:52
has joined #pactflow

ron.aharoni
2021-04-26 11:03
has joined #pactflow

andrewmorton
2021-04-26 13:33
has joined #pactflow

aram
2021-04-26 15:24
has joined #pactflow

marcelo.souzameinberg
2021-04-26 21:32
has joined #pactflow

songqing.gu
2021-04-27 01:25
has joined #pactflow

fortiss.anita
2021-04-27 09:34
has joined #pactflow

keshav.reddy503
2021-04-27 12:06
has joined #pactflow

wesleythomaswilliams
2021-04-27 14:37
Just noticed that there's no protection when deleting a webhook, which I accidentally just did in Pact Flow Enterprise. Any chance of a confirmation box pls to stop morons like me from being morons like me :smile:

jeremykeczan
2021-04-27 14:57
has joined #pactflow

yeseniavega411
2021-04-27 15:31
has joined #pactflow

almantusk
2021-04-27 16:56
has joined #pactflow

bethskurrie
2021-04-27 22:10
Matt has been meaning to do that for a while @wesleythomaswilliams.

bethskurrie
2021-04-27 22:11
I'll make sure it's on the list.

bethskurrie
2021-04-27 22:12
Done.

alexandra.huamani
2021-04-28 00:12
has joined #pactflow

matt.fellows
2021-04-28 01:15
Thanks Beth!

tonynguyenit18
2021-04-28 02:12
has joined #pactflow

bheemreddy181
2021-04-28 03:43
Same for open source too :stuck_out_tongue_closed_eyes:

agrawalneeraj43
2021-04-28 04:37
has joined #pactflow

shixun.liu1023
2021-04-28 04:39
has joined #pactflow

narendra.pathai
2021-04-28 06:21
has joined #pactflow

marcin.grzejszczak
2021-04-28 13:53
has joined #pactflow

flubniewski
2021-04-28 17:01
has joined #pactflow

bethskurrie
2021-04-29 02:08
At least in the OSS, you have to type the word `DELETE` in the hal browser to delete a webhook :stuck_out_tongue:

c.pavan1986
2021-04-29 14:53
We have deployed pactflow to kubernates environment with basic auth. It shows up the signon screen with username and password. And once I keyin username and passowrd, it redirects to https://encironment/auth/saml.

c.pavan1986
2021-04-29 14:53
Not sure why it is hitting saml if we use basic auth

c.pavan1986
2021-04-29 14:53
We have spyder mesh enabled for the kubernates environment

c.pavan1986
2021-04-29 14:59
We are trying to access using ingress

yousafn
2021-04-29 21:06
has joined #pactflow

matt.fellows
2021-04-30 01:49
could you please share your configuration setup?

bethskurrie
2021-04-30 02:23
@c.pavan1986 From the docs: "PACTFLOW_BASIC_AUTH_ENABLED: Whether or not to enable basic authentication. For demo purposes only - not to be set to `true` for production use. Cannot be set to `true` at the same time as PACTFLOW_SAML_AUTH_ENABLED."

bethskurrie
2021-04-30 02:24
@c.pavan1986 the basic auth is only for trying out the docker image locally using docker compose. You cannot have the basic auth on if you are deploying to a real environment with SAML.

roy_collings
2021-04-30 15:15
has joined #pactflow

matt.fellows
2021-05-03 03:29
Hi Pavan, did you resolve this?

prachi_mangesh_edake
2021-05-03 04:43
has joined #pactflow

c.pavan1986
2021-05-03 05:37
No, we disabled spyder mesh for now.

c.pavan1986
2021-05-03 05:39
Spyder mesh is for additional security we have, we were using the basic auth only. PACTFLOW_BASIC_AUTH_ENABLED is true and PACTFLOW_SAML_AUTH_ENABLED is false.

bethskurrie
2021-05-03 05:40
The build in basic auth is absolutely not production safe.

c.pavan1986
2021-05-03 05:40
This is sandbox environment we are trying on aws, with aws postgres rds.

bethskurrie
2021-05-03 05:40
Only SAML auth is supported currently.

c.pavan1986
2021-05-03 05:41
We have deployed pactflow with basic auth on aws eks and postgres as service from aws rds. All was working fine.

c.pavan1986
2021-05-03 05:49
After this we introduced spyder mesh (istio-proxy). This changes introduced 2 problems 1) pactflow (on aws eks) was not able to connect to rds. Because the outbound traffic from aws eks via spyder mesh was not allowing. Solution: we created a serviceentry kubernates object with (aws postgres details: host, post, protocol). 2) pactlow was not accessible, we have ingress via which we were able to access pactflow application (before introducing spyder mesh). Solution: We added 2 additional atrributes in ingress metadata to reference the pactflow service. This started showing up the ui for keyin username and password, but after keying in username and password it redirect to https://encironment/auth/saml

bethskurrie
2021-05-03 05:50
I'll run the basic auth locally and see if I can fix that.

c.pavan1986
2021-05-03 06:01
Below are the 2 kubernates attributes we hav used in ingress metadata.annotations http://ngnix.ingress.kubernetes.io/service-upstream = true http://ngnix.ingress.kubernetes.io/upstream-vhost

c.pavan1986
2021-05-03 06:01
Thank you

matt.fellows
2021-05-03 06:09
We don?t run EKS/Kube here or test Pactflow against it, but if you have a config we could test locally (e.g. run against minikube or something) that could help us sanity test certain things

bethskurrie
2021-05-03 06:30
@c.pavan1986 I've run the app locally with the following env vars ``` export PACTFLOW_BASIC_AUTH_ENABLED=true export PACTFLOW_BASIC_AUTH_USERNAME=user export PACTFLOW_BASIC_AUTH_PASSWORD=pass export PACTFLOW_SAML_AUTH_ENABLED=false```

bethskurrie
2021-05-03 06:31
I get the basic auth prompt, and no redirect to `/auth/saml`

bethskurrie
2021-05-03 06:31
That's running the native app. I'm just building the docker container to see if there's any difference in the behaviour.

bethskurrie
2021-05-03 06:33
Got the docker container running, and I'm still seeing the expected behaviour. There must be some difference that we aren't aware of between your environment and mine.

c.pavan1986
2021-05-03 07:44
After keying in the username and password (in basic auth promt) I use to see a screen with below details Login to pactflow ?-?------Login with?---------- ID hyperlink On click of hyperlink it use to get redirected to /auth/saml

c.pavan1986
2021-05-03 07:45
Do yoh have spyder mesh enabled?

sams.prashanth
2021-05-03 08:04
has joined #pactflow

matt.fellows
2021-05-03 11:00
As per above, we don?t use kubernetes Pavan

philip.m.wood
2021-05-03 12:46
has joined #pactflow

amiller
2021-05-03 15:27
has joined #pactflow

agarwal.akash333
2021-05-03 23:14
has joined #pactflow

bethskurrie
2021-05-04 00:31
@c.pavan1986 that second login screen should not be showing

bethskurrie
2021-05-04 00:32
It should just go straight to the logged in page. Can you try a hard refresh for me?

marcin.grzejszczak
2021-05-04 07:26
@marcin.grzejszczak has left the channel

anand.ilkal
2021-05-04 08:01
has joined #pactflow

c.pavan1986
2021-05-04 14:42
On a saml enabled pactflow instance can we call can-i-deploy using pact_broker_username and pact_broker_password instead of pact_broker_token. I am using a docker based implementation of pactbroker cli

dennis.minard
2021-05-04 16:23
has joined #pactflow

chris.williams
2021-05-04 16:41
has joined #pactflow

chris.williams
2021-05-04 16:45
Wondering if there's a problem with new password codes / password resets - as I can't get passwords changed :confused:

ssorcnafets
2021-05-04 19:20
has joined #pactflow

matt.fellows
2021-05-04 20:36
No

matt.fellows
2021-05-04 20:36
Username/password is for accounts protected with basic with

matt.fellows
2021-05-04 20:37
Why can't you use the API tokens?

kowalczuk.jnr
2021-05-04 22:24
has joined #pactflow

hugo
2021-05-05 00:48
has joined #pactflow

matt.fellows
2021-05-05 01:56
I?ll DM you offline

aparnachaudhari
2021-05-05 01:58
I want to make sure my understanding of the bi-directional pact testing is correct. Please point out any gaps. ? With bi-directional pact testing, the provider service will upload its swagger spec (OpenApi v2 is compatible) to the pact broker. ? The consumer service writes its contract and expectations for this spec. ? The big difference with doing this vs the things are done now is - the provider side of things are spun up easily - ? i.e. just upload the oas spec and we can have validations vs provider service needing to be spun up with mocking any dependencies. ? The consumer still writes the contract it expects from the provider. - I am unclear how this might differ from the way we write the contract now? ? I am proposing the use of this against an api gateway - consumer .. which aggregates the oas from multiple provider services. Does this sound like a use-case that might be supported by this.

matt.fellows
2021-05-05 02:04
> With bi-directional pact testing, the provider service will upload its swagger spec (OpenApi v2 is compatible) to the pact broker. Yes. The caveat to add here, is that *you* are responsible for ensuring your provider actually is compatible with the spec, and the functional tests. > The consumer service writes its contract and expectations for this spec. Yep. You can use Pact to do this (so same as standard flow) or convert existing mocks into contracts (currently this would be manually done from your side, as we build out adapters). We also envisage the community build out adapters for things they see as useful - e.g. @yousafn has actually just created one for MSW for example: https://twitter.com/YOU54F/status/1389653091927142400 > The big difference with doing this vs the things are done now is - the provider side of things are spun up easily - > i.e. just upload the oas spec and we can have validations vs provider service needing to be spun up with mocking any dependencies. Yep, as per above, this testing is very much delegated to you (for now, we will also be building tools in this space over time) > The consumer still writes the contract it expects from the provider. - I am unclear how this might differ from the way we write the contract now? see above. > I am proposing the use of this against an api gateway - consumer .. which aggregates the oas from multiple provider services. Does this sound like a use-case that might be supported by this. definitely one of the core use cases

aparnachaudhari
2021-05-05 02:27
The caveat you speak of.. can you please elaborate..how is the provider verifying this compatibility?

matt.fellows
2021-05-05 02:41
So basically just becase you have an OAS doesn?t mean it actually represents the behaviour of your provider, right? Especially if made by hand. So in the bi-directional mode, you have two choices: 1. Generate the OAS from code (e.g. in Golang, that could be struct tags/generators) 2. Test that your provider is compatible with the spec (there are heaps of tools for this - e.g. Dredd, Postman, Prism and so on)

matt.fellows
2021-05-05 02:41
We?ll be investing in our own tooling for (2), but that?s a little while away, and also may not be something people want to adopt - especially if they have already built their own suite of tests

aparnachaudhari
2021-05-05 02:47
Ah I see.. yeah we already have support for that

c.pavan1986
2021-05-05 06:12
We just wanted the connectivity to go through regular authentication process if possible. As the tokens wont expire in pactflow (unless user regenerates the token), incase if we have username and password based connectivity the authentication process can be in sync with password expiration policy of the saml provider.

c.pavan1986
2021-05-05 06:16
For now we have removed the spydermesh, will give it a try when we add it back

matt.fellows
2021-05-05 06:50
You can expire tokens now via the system preferences

ssorcnafets
2021-05-05 07:43
Hello, Im hoping someone can help me out here as im at a bit of a dead end, I have the following failure with a pactflow verification, can anyone help direct me in which way to go? ```java.lang.AssertionError: Pact between onboarding-changefeed-messages (bcd51dfe4259a56c3ae045142678e262094b7863) and onboarding-messages - Generates message 'an accepted invitation change message' Failures: 1) an accepted invitation change message 1.1) Failed to invoke provider method 'Verify Provider For Accepted Invitation' at au.com.dius.pact.provider.junit5.PactVerificationContext.verifyInteraction(PactVerificationContext.kt:61) at com.sedex.connect.onboarding.pact.MessageProviderPactTest.verifyInteraction(MessageProviderPactTest.kt:67) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestTemplateMethod(TimeoutExtension.java:92) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)``` Seems to be somewhat intermittent, and only on our CI pipeline, I can not reproduce locally. Any suggestions on how to get any more insight as to the nature of `Failed to invoke provider method`? There is some more stack trace but left it out for the sake of brevity. More then happy to give more details or equally let me know if this is more suitable to ask in the JVM channel?

matt.fellows
2021-05-05 08:10
There should be a log file that your Junit test spits out - anything helpful in there?

matt.fellows
2021-05-05 08:10
flakiness on CI usually indicates timing issues. So perhaps the provider is not spinning up in time for the tests to run (depending on how you start it)

ssorcnafets
2021-05-05 08:17
I only have the junit test reports, I can look to see if I can enable additional logging if thats a possibility

ssorcnafets
2021-05-05 08:18
the rest of the stack trace is? ```at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:212) at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:192) at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:139) at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.lambda$execute$2(TestTemplateTestDescriptor.java:107) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:107) at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:42) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy5.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:133) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.base/java.lang.Thread.run(Thread.java:832)```

matt.fellows
2021-05-05 09:41
sorry, that means nothing to me :grimacing:

matt.fellows
2021-05-05 09:42
hopefully somebody else can help. But interestingly, there are no pact classes in there - so it looks to be not a Pact issue

matt.fellows
2021-05-05 09:42
ah, the first line is :slightly_smiling_face:

ssorcnafets
2021-05-05 09:54
no worries, you did get me thinking about the provider timing/availability issues. Ive popped some more try catches around the verify method and the provider method to see if we can get some insight as to the underlying exception which i think is getting swallowed? this investigation continues :male-detective:

jadelong
2021-05-05 15:51
has joined #pactflow

uglyog
2021-05-05 22:40
Enabling debug logging will help

aparnachaudhari
2021-05-05 22:41
Question - has any one actually generated a pact contract using an existing swagger spec i.e. given this swagger spec generate a contract for it.. and then use that contract to test for any new changes in the spec

yousafn
2021-05-05 23:13
a swagger spec will define a aset of required and optional fields for all operations, and doesn?t define a contract, so your output pact files would potentially contain far more than the consumer needs and would make the contract incredibly brittle

yousafn
2021-05-05 23:14
we use a swagger spec from a provider to validate that our consumer generated pact contracts are achievable, but they will read the docs from a feature branch if it exists, otherwise fall back to master



aparnachaudhari
2021-05-05 23:18
```Manually writing or generating a pact file from something like a Swagger document would be like marking your own exam, and would do nothing to ensure that the code in the consumer and provider are compatible with each other.``` I do agree with ^^..

aparnachaudhari
2021-05-05 23:19
I got asked by a developer who works on the API Gateway about this actually.. the idea was - if we have a known good spec on the gateway for all the aggregated providers.. can pact enable us to validate any breaking changes that happen after this.

bethskurrie
2021-05-05 23:21
Good question. The bi-directional pacts might help this situation.

aparnachaudhari
2021-05-05 23:21
yeah.. it was actually when we were reviewing a possibility of using bi-directional contract testing using pactflow

aparnachaudhari
2021-05-05 23:22
but the consumer in this case - per my understanding is still written in the standard way - i.e. hand written consumer tests? what he wanted to know was if I have a known good spec can I just use that as a consumer contract

bethskurrie
2021-05-05 23:59
I don't think this is released in the on prem version yet though. Are you on prem or saas @c.pavan1986?


matt.fellows
2021-05-06 01:04
true, but it will be soon so it?s worth knowing, in case you try and build your own tooling around it

alexei.solcanu
2021-05-06 02:01
has joined #pactflow

zonkor
2021-05-06 08:08
has joined #pactflow

florian.mautendorfer
2021-05-06 14:04
has joined #pactflow

c.pavan1986
2021-05-06 14:33
We are using onprem

john.mcnulty
2021-05-06 16:49
has joined #pactflow

agarwal.akash333
2021-05-07 03:25
Hello. I?ve been looking into using pact-cli for verifying a Springboot provider and publishing the results back to pactflow. To use `pact-cli verify` , does it mean that I would need to have the Spring server up and running for Pact CLI to run the verification on? In essence, does that mean the junit setup becomes useless?

bethskurrie
2021-05-07 03:26
I would recommend using the native JVM library for that.

bethskurrie
2021-05-07 03:26
Is there a reason why you wouldn't?


bethskurrie
2021-05-07 03:28
The Junit setup would be useless if you used the CLI verifier. You'd have to stand up the entire application on a port with a real process.

agarwal.akash333
2021-05-07 03:30
Yes, I tried using provider 4.2.4 and it apparently broke the Junit setup quite a bit. On the consumer side, 4.2.4 just didn?t work on 2 different machines using Gradle 6.5 and java 11. This led me to consider using CLI for publishing pacts and verification results

bethskurrie
2021-05-07 03:30
I see. I'm not a JVM user, but I understand it can be very complicated!

bethskurrie
2021-05-07 03:31
Yes you can use the CLI. It's not ideal, and you lose the ability to dynamically mock things inside the process, but it can be done.

agarwal.akash333
2021-05-07 03:33
> The Junit setup would be useless if you used the CLI verifier. You?d have to stand up the entire application on a port with a real process. Thanks! This confusion is exactly what has been crunching my brain for quite a while now :sweat_smile: > Yes you can use the CLI. It?s not ideal, and you lose the ability to dynamically mock things inside the process, but it can be done. Yeah, I was wondering about state management, and I?m guessing one would have to do that via API calls as in https://github.com/pact-foundation/pact-provider-verifier/blob/master/examples/api.rb.

bethskurrie
2021-05-07 03:35
Depending on which verifier you're talking about (there's a ruby based one and a rust one).

bethskurrie
2021-05-07 03:35
The ruby one requires that you create a "change provider state" endpoint, either on the running app, or in a separate endpoint.

bethskurrie
2021-05-07 03:35
I'm not sure how the rust one works.

bethskurrie
2021-05-07 03:36
yes, that's the ruby one.

agarwal.akash333
2021-05-07 03:37
> either on the running app, or in a separate endpoint. How would you be able to do that on a seperate endpoint and affect the main provider? Some ruby world magic?

bethskurrie
2021-05-07 03:37
no, it would just be a different app that pointed at the same database.

agarwal.akash333
2021-05-07 03:37
(I don?t mean to diss ruby haha, I?ve been quite a rails enthusiast)

agarwal.akash333
2021-05-07 03:37
Ah makes sense

bethskurrie
2021-05-07 03:37
the provider state set up call usually modifes somethign in the database.

bethskurrie
2021-05-07 03:37
YOu can either add an extra "test only" endpoint to your app, or make a separate "state change" app.

agarwal.akash333
2021-05-07 03:39
That makes a lot of sense, thanks for explaining it so well, Beth! Time for me to reconsider using CLI :slightly_smiling_face:

matt.fellows
2021-05-07 05:12
> The ruby one requires that you create a ?change provider state? endpoint, either on the running app, or in a separate endpoint. (edited) the rust one is also the same

matt.fellows
2021-05-07 05:12
Maybe you could have a separate sub-project or something Akash, that doesn?t have dependency conflicts but can pull in the same source? Just thinking out loud :thinking_face:

agarwal.akash333
2021-05-07 05:14
I?m leaning towards getting the JUnit stuff working so far :slightly_smiling_face:

ssorcnafets
2021-05-07 08:29
Yes, thanks! for the benefit of others reading and trying to debug such things? added `./gradlew pactProviderTest -Ppact.showStacktrace=true --info` and also a try catch around the offending method this yielded the following? ```MessageProviderPactTest > Pact between onboarding-changefeed-messages (9a48634e26aa894bed722b4ed956b83e6b1da70b) and onboarding-messages - an accepted invitation change message STANDARD_ERROR java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.asText()" because the return value of "com.fasterxml.jackson.databind.JsonNode.get(String)" is null at com.sedex.connect.onboarding.pact.MessageProviderPactTest$Verify Provider For Accepted Invitation$1.test(MessageProviderPactTest.kt:98)``` We eventually found that the underlying test on a kafka topic was reused across different test suits and as such was not getting the message it was expecting, so theres some json parsing error message there :point_up_2: We seems to have stabilised things now by randomising our topics names for tests where required.

c.pavan1986
2021-05-07 12:19
Is there any other way other than using pactflow token, like a bearer token if producable by saml provider

matt.fellows
2021-05-07 12:36
What are you trying to achieve?

matt.fellows
2021-05-07 12:37
The short answer is no, only tokens generated by the app itself may be used as bearer tokens

c.pavan1986
2021-05-07 12:42
We want to publish contracts/verification results, can i deploy. Using something else other than pactflow generated tokens. We want to have single flow of access to pactflow for user login and api calls (publish contracts/verification results etc)

c.pavan1986
2021-05-07 12:44
Thank you for clarifying on this item.

matt.fellows
2021-05-07 12:47
The tokens are still associated with a user principal, and therefore the federated IdP

matt.fellows
2021-05-07 12:47
If the user is deactivated in the IDP and deprovisioned their tokens will cease to work

matt.fellows
2021-05-07 12:48
I'd need to double check if there is a deprovisioning hook, but there is most definitely an API you can call to disable a user

tarunmehrotra3
2021-05-10 06:31
has joined #pactflow

jbecker
2021-05-10 16:31
has joined #pactflow

thomas.rosati
2021-05-10 23:21
Specifically, we're wondering if we can use a basic Access Token obtained via OAuth Resource Owner Password Credentials flow instead of a Pactflow API Token to make api-to-api calls from our CI pipeline to Pactflow?

thomas.rosati
2021-05-10 23:23
Pactflow currently authorizes human operators through a standard OAuth flow supported by our enterprise security, but just wondering if we could do the same for our non-human functional accounts as well..

matt.fellows
2021-05-11 00:43
We don?t currently have that capability Tom

matt.fellows
2021-05-11 00:43
Happy to chat with you about it of course

james.wettenhall
2021-05-11 04:54
has joined #pactflow

eduardo.marques
2021-05-11 09:19
has joined #pactflow

robbert.van.der.zon
2021-05-11 11:39
has joined #pactflow

robbert.van.der.zon
2021-05-11 11:40
Hi all! I am not sure if this is asked before, but I could not find it. We started using contract testing with pactflow within our own organisation. But now we would like another company which uses one of our services to use contract testing too. That means that they need to upload their client contracts to our pactflow environment. For their CI/CD, they need an API Token. Since we can only create one read/write token, we need to give them the same token as we use internally. I am wondering if that is a security issue since they can see all our other internal contract also with that token. Also, I think it might be useful for them to be able to logon to pactflow user interface to see if their contracts are verified. I tried creating a user with 'Viewer' permissions and assign this user to a team that has only one team-application configured. I was hoping that this user would only see the contracts that belong to his team, but they can see all contracts (and also all teams and users). My main question is: How must we deal with the situations where we would like a contract test with an external company.

matt.fellows
2021-05-11 11:43
great question! First up, might be worth looking at this specifically: https://github.com/pactflow/roadmap/issues/35

matt.fellows
2021-05-11 11:43
Currently, there is no way to hide contracts from another team, but obviously we can lock down who can do what to them

matt.fellows
2021-05-11 11:43
If you can DM me offline, we can discuss the service account limit

matt.fellows
2021-05-11 11:44
We haven?t really focussed on this use case as you can guess, but it?s something we?ve known about as a secondary type use case

robbert.van.der.zon
2021-05-11 11:46
Thanks for your quick answer, I'll send you a DM

al8x.romanov
2021-05-11 13:09
has joined #pactflow

jr.jenks
2021-05-11 21:46
has joined #pactflow

sammomichael
2021-05-12 02:27
has joined #pactflow

tony.foster
2021-05-12 03:44
has joined #pactflow

jan.businsky
2021-05-12 09:10
has joined #pactflow

lreisch
2021-05-12 19:23
has joined #pactflow

jorge.curima.corp
2021-05-13 01:37
has joined #pactflow

anh.evizi.test
2021-05-13 05:56
has joined #pactflow

yka259
2021-05-13 08:22
has joined #pactflow

roy_collings
2021-05-13 10:00
Hi! I just came across this: My 'can-i-deploy' (CID) check doesn't seem to work for provider (with OAS): 1. publish matching consumer (pact) and provider(using oas), and tag both as 'prod' Provider CID = ok Consumer CID = ok 2. Remove an endpoint completely in provider OAS Provider CID = *ok* 3. Publish new provider and tag as 'prod' Consumer CID now fails (as expected) Why doesn't the _provider_ CID check fail at step 2? Seems to _never_ fail, no matter what I change in it.

roy_collings
2021-05-13 10:08
in case it matters, the result from the provider 'can-i-deploy' is always `There are no missing dependencies`

roy_collings
2021-05-13 10:18
... also, in case it matters, when I publish my provider oas, this is the payload: ```{ "content": "$OAS", "contractType": "oas", "contentType": "application/yaml", "verificationResults": { "success": true, "content": "$RESULTS", "contentType": "text/plain", "verifier": "verifier" } }```

matt.fellows
2021-05-13 11:14
Thanks Roy. I have forwarded your email to our support address and we?ll look into it

roy_collings
2021-05-13 11:36
Awesome, thanks Matt! :slightly_smiling_face:

joshibharat
2021-05-13 11:43
has joined #pactflow

roy_collings
2021-05-13 11:45
By the way @matt.fellows, should I be using `record-deployment` instead of tagging like this? Until I noticed that endpoint I thought that's how to mark something as 'test'/'prod'.

matt.fellows
2021-05-13 11:57
I don't think so yet, albeit it is now in the system and will eventually be the new way. @bethskurrie may have thoughts on it tho

matt.fellows
2021-05-13 11:57
I'd like to ensure all docs/tutorials etc are using it instead of tagging when we pull the pin on it

roy_collings
2021-05-13 12:05
Cool - I think I've figured out my issue btw: I was assuming that since the _consumer_ can do can-i-deploy without specifying other pacticipants, that tthe provider could do that too (`can-i-deploy --pacticipant 'test-provider' --version '1.0.0' --to 'prod'`). If I specify the consumer in there though, then it works as expected (I'll update the gihub action to enable that). Would be nice if the provider didn't need to explicitly know which consumers used it though.

matt.fellows
2021-05-13 12:06
That?s certainly an option to work around the current problem, but it _should_ discover consumers by default

bethskurrie
2021-05-13 20:28
My initial thought was that it was hitting the bit of logic that allows providers to deploy into a new environment without the consumer being present.

bethskurrie
2021-05-13 20:29
But if they're both tagged prod, then it should be discovering them. You should not need to explicitly list both consumer and provider. That does seem like a bug. I'll try and get a reproduction today.

smankala
2021-05-13 20:55
has joined #pactflow

martin.pelikan
2021-05-14 06:48
has joined #pactflow

bethskurrie
2021-05-14 07:04
@roy_collings the record-deployment API is not finished yet, but should be out soon.

bethskurrie
2021-05-14 07:04
Also, Matt is just testing the fix for the can-i-deploy issue.

matt.fellows
2021-05-14 07:49
Sorry for the delay, had a late phone call this afternoon and wanted to do a few checks/balances before I signed it off

matt.fellows
2021-05-14 07:57
It?s looking good to me. I?ve tested a few scenarios, including the negative one that triggered this conversation, and it correctly detects the backwards incompatible change

joao_glorioso
2021-05-14 08:41
has joined #pactflow

roy_collings
2021-05-14 08:42
Oh weird, it's reliably not working for me :disappointed: I'll look into it more next week hopefully.

bethskurrie
2021-05-14 09:04
Which type of not working @roy_collings?

matt.fellows
2021-05-14 09:05
You may need to rerun the consumer build and then return the provider. If that doesn't work, should he delete the integration and start again?

bethskurrie
2021-05-14 09:05
No, it was a logic error, not a data error.

bethskurrie
2021-05-14 09:05
It should be fixed.

bethskurrie
2021-05-14 09:06
When you do get a moment @roy_collings please do let me know your steps to reproduce the problems you're seeing.

matt.fellows
2021-05-14 09:12
I'll have a look later Beth. I may have been confused, but I found that when I ran the provider verification the first time after the fix it didn't show the result

matt.fellows
2021-05-14 09:13
I thought because even though the consumer was tagged prod, the contract may have been pending (obviously a guess, I don't know how that works with the new BDC flow).

ashok.jan31
2021-05-14 12:25
has joined #pactflow

roy_collings
2021-05-14 15:45
@bethskurrie without getting into the low-level details the steps were ('CID' = 'can-i-deploy' to 'prod'): 1. Published matching consumer (pact) and provider (OAS), and tag both as 'prod', then ran CID on both:  Provider CID = ok  Consumer CID = ok 2. Remove an endpoint completely in provider OAS and publish it again (new version, but tagged as 'prod'):  Provider CID = *ok*  Consumer CID = failed (as expected)

gusfisha
2021-05-14 19:52
has joined #pactflow

keithgutfreund
2021-05-14 20:13
has joined #pactflow

k.gutfreund
2021-05-15 03:47
has joined #pactflow

bethskurrie
2021-05-15 22:27
I thought that's what I'd recreated, but I'll have another go on Monday.

siegcollado
2021-05-17 05:03
has joined #pactflow

simon.thomas1978
2021-05-17 08:53
has joined #pactflow

keimiokamoto
2021-05-17 10:36
has joined #pactflow

fabian.feary
2021-05-17 11:52
has joined #pactflow

josh.brangwyn
2021-05-17 12:19
has joined #pactflow

xiao.liang
2021-05-17 16:41
has joined #pactflow

bhattacharyyasom
2021-05-18 14:05
has joined #pactflow

lalit210784
2021-05-18 17:55
has joined #pactflow

zaxosdimi
2021-05-18 22:14
has joined #pactflow

viktor.trako
2021-05-19 15:45
has joined #pactflow

abdel.akkoub
2021-05-19 17:27
has joined #pactflow

akrala
2021-05-19 21:22
has joined #pactflow

mazi.fayazfar
2021-05-19 22:23
has joined #pactflow

daniel.qu
2021-05-20 18:03
has joined #pactflow

vijay.chawla
2021-05-21 08:37
has joined #pactflow

tim.walter
2021-05-21 09:12
has joined #pactflow

ankit.laddha
2021-05-21 14:03
has joined #pactflow

dimundo
2021-05-21 14:09
has joined #pactflow

abdel.akkoub
2021-05-21 22:07
Hello, we are facing an isssue with PactFlow's webhooks that trigger the corresponding Azure DevOps CICD provider pipeline. In the body of the webhook's POST, we are sending the following JSON: `{` `"definition": {` `"id": <AZURE PIPELINE DEFINITION ID>` `},` `"parameters": "{'consumerVersionTags': '${pactbroker.consumerVersionTags}'}",` `"sourceBranch": "main"` `}` However, when we face a situation where 1 branch on the consumer side breaks provider, and a 2nd code fix is committed to the same consumer branch, the webhook trigger seems to skip the consumerVersionTag on the 2nd go: ```[2021-05-21T21:58:37Z] DEBUG: Webhook context {"base_url":"https://myCompany.pact.dius.com.au","consumer_version_tags":[],"event_name":"contract_published"} [2021-05-21T21:58:37Z] INFO: HTTP/1.1 POST https://dev.azure.com/myCompany/Overcast/_apis/build/builds?api-version=5. [2021-05-21T21:58:37Z] INFO: accept: */* [2021-05-21T21:58:37Z] INFO: user-agent: Pact Broker v2.79.0 [2021-05-21T21:58:37Z] INFO: authorization: [REDACTED] [2021-05-21T21:58:37Z] INFO: content-type: application/json [2021-05-21T21:58:37Z] INFO: host: http://dev.azure.com [2021-05-21T21:58:37Z] INFO: content-length: 91 [2021-05-21T21:58:37Z] INFO: {"definition":{"id":1580},"parameters":"{'consumerVersionTags': ''}","sourceBranch":"main"} [2021-05-21T21:58:37Z] INFO: HTTP/1.1 200 OK .......``` This causes the provider to run against main instead of running against the correct consumer branch: ``` Description of differences -------------------------------------- * Expected a Hash (like {"activeSowTemplatesV2"=>{"totalCount"=>1, "items"=>[{"sowTemplateId"=>"1231-1ab23f", "name"=>"Development", "projectType"=>"Development", "businessJustification"=>"1238", "industry"=>"IT", "geography"=>"United States", "currency"=>"USD", "sowCreationCallback"=>"ServicesProcurement/ProjectAgreementBuilder.aspx?TemplateID=1231-1ab23f", "__typename"=>"SowTemplateV2"}], "__typename"=>"SowTemplatePageV2"}}) but got nil at $.data 2 interactions, 1 failure Failed interactions: * A request to get sow templates given user has sow templates and is authenticated (to re-run just this interaction, set environment variable PACT_BROKER_INTERACTION_ID="b20ce3f669130aeba7da505067299fa048ed7ae5") INFO: Tagging version a64c2a71747accf8bc98a596ff00046129ec947a of DigitalExperienceApollo_Overcast as "main" INFO: Verification results published to https://myCompany.pact.dius.com.au/pacts/provider/DigitalExperienceApollo_Overcast/consumer/UI/pact-version/2f2dd87919908660defc04e4b9f4b51b961279bd/verification-results/12107 at ChildProcess.<anonymous> (node_modules/@pact-foundation/pact-node/src/verifier.ts:272:58) Test Suites: 1 failed, 1 total Tests: 1 failed, 1 total``` We have seen this issue on multiple occasion in the past few months. However, replicating it has been tricky given the circumstances under which the issue surfaces. Please advise how to go about resolving this. Thx!

abdel.akkoub
2021-05-21 23:59
It turns out the webhook is triggered a fraction of a second before the tagging task runs in the consumer pipeline. I also noticed that we configured the webhook to run only when new contracts are published. I added the option the to trigger webhook when a new contract is published with a content change or tags that way the webhook is triggered under both conditions. The downside with this approach is having the provider pipeline run twice with different consumer tags which may give false negatives under some circumstances. Please advise if you recommend following a different approach.

include.melaz
2021-05-22 13:15
has joined #pactflow

uddhavchopade
2021-05-23 08:32
has joined #pactflow

bethskurrie
2021-05-23 23:16
@abdel.akkoub ideally, you should be passing through the Pact URL, not the consumer version tags.

bethskurrie
2021-05-23 23:17
Here is the documentation for setting up the verification build https://docs.pact.io/pact_nirvana/step_4#e-configure-pact-to-be-verified-when-contract-changes

bethskurrie
2021-05-23 23:17
The reason that it's important to use the URL is that there is extra information encoded in that URL that helps the broker line up all the events and results properly.

bethskurrie
2021-05-23 23:22
> It turns out the webhook is triggered a fraction of a second before the tagging task runs in the consumer pipeline. I also noticed that we configured the webhook to run only when new contracts are published. I added the option the to trigger webhook when a new contract is published with a content change or tags that way the webhook is triggered under both conditions. I can see that there is some flakey behaviour here, but I'm not sure if this is the cause. The "create tag" response comes back before the pact publishing request is sent. That means that the tag must have been committed to the database before the publish pact request is sent. The webhook is not triggered until the pact has been published (it's not triggered on the tagging, it's triggered on the pact publication).

bethskurrie
2021-05-23 23:22
I will give this some more thought.

bethskurrie
2021-05-23 23:24
There is a new pact publishing API that is coming out soon which does the tagging/pact publishing all in one, so if the problem is caused by timing issues, they should be fixed.

bethskurrie
2021-05-24 00:26
@abdel.akkoub can you try using the pact URL instead of the consumer version tags, and let me know how you go? If that's not possible, or doesn't fix the problem, then I'll let you know how you can try out the new publishing API to see if that fixes the issue.

bethskurrie
2021-05-24 00:27
Let me know which language you're doing the verifications in, so I can get that client updated.

lukasz.wlosek
2021-05-24 08:03
has joined #pactflow

komathy_priya_dhanas
2021-05-24 09:26
has joined #pactflow

roy_collings
2021-05-24 10:25
@bethskurrie @matt.fellows just fyi: this seems to be working now (finally got some time to figure it out ... and it just works!). No idea what happened there, but happy that it's working now - apologies, since no-one else was complaining I can only assume it was something I did wrong the last time :man-shrugging: .

matt.fellows
2021-05-24 10:34
Thanks for confirming Roy.

nh.salah
2021-05-24 11:46
has joined #pactflow

2021-05-24 11:51
Notification from *Pactflow Contract Testing Platform* :ghost:

abdel.akkoub
2021-05-24 15:16
Hi @bethskurrie, I appreciate the response. I am going through the documentation to replace existing parameter with the URL one. As for the provider, it is in Node. Will update you shortly. The reason why I am thinking the tagging is an issue from our end, is the fact that we have two separate tasks in the consumer CICD pipeline where the contract is first uploaded then is tagged. I am guessing the webhook is triggered between upload and tagging given that the broker is configured to fire whenever a new contract is uploaded regardless of tagging.

2021-05-24 15:35
Notification from *Pactflow Contract Testing Platform* :ghost:

erinc1915
2021-05-24 16:11
has joined #pactflow

nzarate
2021-05-24 18:11
has joined #pactflow

jonathan.arreola
2021-05-24 21:20
has joined #pactflow

cesar.consultorjr
2021-05-24 21:39
has joined #pactflow

bethskurrie
2021-05-24 22:50
@abdel.akkoub why is the contract tagged after uploading? What are you trying to achieve?

abdel.akkoub
2021-05-24 23:58
I believe the team was trying to adhere to pact standards by assigning the feature branches to tags. After that, consumer pipeline runs can-I-deploy using the uploaded contract's version (commit hash) against latest prod branch on the provider. The webhook is also triggered to run provider against latest consumerVersionTags passed in via the webhook. If no consumerVersionTags are found when the provider test is running, the provider defaults to the main branch on the consumer side.

abdel.akkoub
2021-05-25 00:04
Now here is the interesting part, This issue appears to be related to the provider verification. We are publishing two contracts that appear to be identical to one another with the only difference being the order of interaction objects in the contracts. When replaying against contract A, provider passes, when run against contract B, provider fails. I initially thought the broker not passing in the tags was the cause of issue. However, I am now able to replicate the issue locally using each contract. I attached both contracts for you to compare.

bethskurrie
2021-05-25 00:05
> assigning the feature branches to tags Are you doing this manually, or in the pact publishing configuration?

bethskurrie
2021-05-25 00:06
If you're doing it in the pact config, the tagging happens first, as it goes through the officially supported pact broker client, that knows to do this in the right order.

bethskurrie
2021-05-25 00:06
> the only difference being the order of interaction objects in the contracts

bethskurrie
2021-05-25 00:07
Order is ignored in the broker. If you publish a pact with the same interactions in a different order, it thinks it is the same pact.

bethskurrie
2021-05-25 00:09
You can see what the broker thinks the diff is.

bethskurrie
2021-05-25 00:13
Open both of the pacts in the API browser (open them in Pactflow, then click on the "API") button. On one of them, scroll down to the `pb:diff` relation. Click on the green "?" button. Go to the other pact, and grab the SHA that you'll see next to the `pb:pact-version` relation and put that in the `pactVersion` value in the form. Click "Follow URI"

abdel.akkoub
2021-05-25 00:21
The still look the same?

bethskurrie
2021-05-25 00:22
Hm, I can't tell!

bethskurrie
2021-05-25 00:22
If they have different shas, then they must be different.

bethskurrie
2021-05-25 00:23
The SHA sorts every field and item into a defined order.

bethskurrie
2021-05-25 00:24
give me a minute, I might be able to easily sort them.

bethskurrie
2021-05-25 00:32
Ok, I've parsed them using the broker code, and you're right, they are identical once all the interactions and keys are sorted.

bethskurrie
2021-05-25 00:32
The diff endpoint needs to do that for us.

abdel.akkoub
2021-05-25 00:34
Hmmm, are you thinking it is something in the broker code?

bethskurrie
2021-05-25 00:34
Now I'm looking at the diff endpoint, it does to that sort.

bethskurrie
2021-05-25 00:35
```def prepare_content json_content if options[:raw] json_content else SortContent.call(Parse.call(json_content)).to_json end end```

bethskurrie
2021-05-25 00:35
Those two pacts you sent me are the same, but that diff endpoint is showing an actual difference

bethskurrie
2021-05-25 00:37
I'm not sure that the two pacts you sent me are the same as the two that are being diffed.

bethskurrie
2021-05-25 00:37
Either way, ordering differences should not cause failures because there should be no dependencies between the interactions.

bethskurrie
2021-05-25 00:37
There might be a leak of state if you're seeing flakiness.

abdel.akkoub
2021-05-25 00:39
I've gone through each interaction to make sure I am not losing my sanity lol :slightly_smiling_face: What is really puzzling here is that I looked at the consumer PR that got merged into main when the contract version was bumped, and I didnt see anything committed to the contract files that are in question

abdel.akkoub
2021-05-25 00:41
The ones I sent you are the local ones vs whats in PactFlow. Not sure what would cause a state leak if the given strings is all what would impact that in the contracts. Correct?

bethskurrie
2021-05-25 00:42
Yeah, I'm at a loss.

bethskurrie
2021-05-25 00:43
Do you have a data source?

bethskurrie
2021-05-25 00:43
Eg. a database. Is that being cleared completely between interactions? That's the most common cause of failures due to ordering.

gdfesta
2021-05-25 00:44
has joined #pactflow

abdel.akkoub
2021-05-25 00:45
We do. We have override methods that basically inject hardcoded data in the return objects rather than making db calls and mapping everything back in the response

bethskurrie
2021-05-25 00:46
I've run out of suggestions. If you can reproduce it locally with those two pacts, then it seems unrelated to Pactflow.

abdel.akkoub
2021-05-25 00:51
I agree. Do you think I should try in the pact-js channel?

bethskurrie
2021-05-25 00:52
Worth a try!

abdel.akkoub
2021-05-25 01:21
Thank you Beth!

2021-05-25 02:30
Notification from *Pactflow Contract Testing Platform* :ghost:

utsavk3210
2021-05-25 08:37
has joined #pactflow

daniel.cardinha
2021-05-25 10:06
has joined #pactflow

abdel.akkoub
2021-05-25 13:51
Thank you Beth. It turned out to be related to the provider states. Some of the states were not being reset. I guess that would make sense that the order of the interactions was breaking the provider. Anyway, thank you so much for your help!

dan.haughey
2021-05-25 14:34
has joined #pactflow

vince.lee
2021-05-25 14:36
has joined #pactflow

pact544
2021-05-25 16:01
has joined #pactflow

shlomi
2021-05-25 22:41
has joined #pactflow

c.pavan1986
2021-05-26 08:09
We have deployed patflow to aws eks, enabled basic auth for testing purpose. But after keying in basic auth username and password it gets redirected ui which shows Login the Pactflow ?---------login with-----------

c.pavan1986
2021-05-26 08:10
On developer toolbar on chrome, network tab shows "Uncaught (in promise) Error: User is not authenticated at api.js:20

c.pavan1986
2021-05-26 08:13
On patflow container logs below is output Time D -- Basic auth check is beong performed, but no valid auth credentials er provided. This might be just because the client does not send credentials until ot receives the challenge Time D : Begin Time D : Insert into audit_events ....

raquel.bautista
2021-05-26 09:38
has joined #pactflow

aubilla
2021-05-26 09:52
has joined #pactflow

vishnuprakash323
2021-05-26 10:46
has joined #pactflow

rob.caiger
2021-05-26 11:54
has joined #pactflow

lio.lunesu
2021-05-26 17:55
has joined #pactflow

nahuel.dallavecchia
2021-05-26 20:24
has joined #pactflow

bethskurrie
2021-05-26 22:43
Hi @c.pavan1986 I remember you had this issue a few weeks ago, and I was unable to reproduce it locally. Can you see if you can reproduce the issue by taking this docker compose file and using the same environment variables you're using for your kubernetes set up https://docs.pactflow.io/docs/on-premises/docker-compose-example

bethskurrie
2021-05-26 22:43
The other alternative is to add the simplesaml container to your kubernetes set up until you're ready to use your real IDP.

mathew.baltes
2021-05-26 23:33
has joined #pactflow

stephen.leece
2021-05-26 23:44
has joined #pactflow

james_fraser
2021-05-27 09:23
has joined #pactflow

mostafa.zaher
2021-05-27 10:13
has joined #pactflow

utsavtiwary10
2021-05-27 10:53
has joined #pactflow

kamoljan
2021-05-28 02:39
has joined #pactflow

mathias.duesterhoeft
2021-05-28 08:59
has joined #pactflow

matty_o_connor01
2021-05-28 15:57
has joined #pactflow

nathaniel.emmons
2021-05-28 18:25
has joined #pactflow

sapoho3257
2021-05-29 16:10
has joined #pactflow

andjela.rajic
2021-05-30 20:00
has joined #pactflow

vishnuprakash323
2021-05-31 04:08
Hi folks, I am new to pact and pactflow. I was going through the feature comparison between Pact broker and pactflow in pactflow website. I could see pactflow supports contract types other than pact and multiple testing modes. Can someone help me to understand what are the other contract types and testing modes supported by pactflow? Any input will be helpful. Thankyou

sumitsg004
2021-05-31 05:10
has joined #pactflow


matt.fellows
2021-05-31 05:42
It?s currently in developer preview. If you drop us a line to I can send you some more material

vishnuprakash323
2021-05-31 05:43
Thankyou @matt.fellows

allan.barbosa
2021-05-31 14:08
has joined #pactflow

vinicius.grund
2021-05-31 14:35
has joined #pactflow

todd.lemmonds
2021-06-01 15:57
has joined #pactflow

alexander.infante
2021-06-01 15:57
has joined #pactflow

michael.doyle
2021-06-01 15:58
has joined #pactflow

paulorochag
2021-06-01 20:20
has joined #pactflow

matty_o_connor01
2021-06-02 13:21
I don't know whether this is language binding specific but I'll try here first. How do I update pactflow with the result of my provider verification? I've got a passing provider test that appears to be successfully communicating with pactflow to do the verification, however nothing happens after the test finishes. The pact remains in an unverified state. This is the C# code I'm using for reference `var pactUriOptions = new PactUriOptions()` `.SetBearerAuthentication("<Read/Write Token>");` `IPactVerifier pactVerifier = new PactVerifier(config);` `pactVerifier` `.ServiceProvider("OconnorEvents.EventCatalog", "http://localhost:5000")` `.HonoursPactWith("OconnorEvents.React")` `.PactBroker("https://xxxxx.pactflow.io", pactUriOptions)` `.Verify(description: "a request for events", providerState: "");` And this is my log output `INFO: Reading pact at https://xxxxx.pactflow.io/pacts/provider/OconnorEvents.EventCatalog/consumer/OconnorEvents.React/pact-version/a82e5668a80c716c76c87a50366b56ff86c3e192/metadata/c1tdW2xdPXRydWUmc1tdW2N2bl09MQ` `DEBUG: The pact at https://xxxxx.pactflow.io/pacts/provider/OconnorEvents.EventCatalog/consumer/OconnorEvents.React/pact-version/a82e5668a80c716c76c87a50366b56ff86c3e192 is being verified because the pact content belongs to the consumer version matching the following criterion:` `* latest version of a consumer that has a pact with OconnorEvents.EventCatalog (1)` `DEBUG: Filtering interactions by: {:description=>/a request for events/, :provider_state=>nil}` `Verifying a pact between OconnorEvents.React and OconnorEvents.EventCatalog` `A request for events` `with GET /api/events` `returns a response which` `has status code 200` `has a matching body` `includes headers` `"Content-Type" which equals "application/json; charset=utf-8"` `1 interaction, 0 failures`

jaspal.gill
2021-06-02 15:23
has joined #pactflow

wenqiglantz
2021-06-02 18:19
has joined #pactflow

bethskurrie
2021-06-02 20:39
@matty_o_connor01 there will be a "publish verification results" flag that you need to turn on.

bethskurrie
2021-06-02 20:39
I don't know what it is off the top of my head, but from memory, it's documented so where near the bottom of the Pact Net readme.

matty_o_connor01
2021-06-02 21:45
Yep it was hiding at the bottom :slightly_smiling_face:. All sorted thanks.

ch.toimbetov
2021-06-02 21:46
has joined #pactflow

xyz1kind
2021-06-03 05:03
has joined #pactflow

aftab.shamim2020
2021-06-03 06:02
has joined #pactflow

slu.mendozaharold
2021-06-03 10:33
has joined #pactflow

sergio.artero
2021-06-04 10:07
has joined #pactflow

v-gabriel.dantas
2021-06-04 15:26
has joined #pactflow

leonardo.viana
2021-06-04 18:52
has joined #pactflow

yashdev963
2021-06-07 06:51
has joined #pactflow

i.pinzari
2021-06-07 17:27
has joined #pactflow

i.pinzari
2021-06-07 18:19
does anyone experience any issues triggering webhook from pactflow? My webhook is not being triggered by the events

gurkiratguliani
2021-06-07 19:36
has joined #pactflow

bethskurrie
2021-06-07 20:28
Hi @i.pinzari can you send an email to with the details of what is being published, and I can look at the logs for you.


matt.fellows
2021-06-08 00:08
And more generally, the events themselves: https://docs.pact.io/pact_broker/webhooks#events

matt.fellows
2021-06-08 00:08
In Pactflow, if you navigate to the webhooks you can see the latest executions for them, to see if there are any issues firing the event

krishna.ramnk
2021-06-08 13:24
has joined #pactflow

i.pinzari
2021-06-08 18:46
thank you, it works now. It was an authentication problem!

i.pinzari
2021-06-08 18:47
The issue that we are having now is that the webhook is invoked all the time a contract gets published regardless if conent is changed or not. Even tho I selected `Contract published with changed content or tags`

i.pinzari
2021-06-08 18:47
no content or tag is beign changed the webhook still runs

sagar.kharab
2021-06-09 00:32
has joined #pactflow

david.vancouvering
2021-06-09 03:36
has joined #pactflow

nuno.pik
2021-06-09 06:58
has joined #pactflow

gayatree.eee
2021-06-09 10:58
Hi Team, does pactflow APIs are following SCIM standard to be consumed by identity management system like Okta.

natashakdykes
2021-06-09 16:06
has joined #pactflow

torbjorn.vatn
2021-06-09 17:30
has joined #pactflow

c.pavan1986
2021-06-09 18:34
We are trying to input the license file for our onprem deployment onto aws eks. We have created a kubernates secret with the license file, and mounted the secret onto the deployment. When I get into the pod (running instance) the license file is located in /home/pactflow-onprem.lic/license.lic Is this expected or the license file should be in /home/pactflow-onprem.lic? Is there a way (env variable, or someother config), which will point to license file in the pod. https://docs.pactflow.io/docs/on-premises/license

bethskurrie
2021-06-09 23:00
Hi @c.pavan1986, the licence should definitely be at /home/pactflow-onprem.lic It seems like the kubernetes volume mounting config is not correct. There is no way (currently) of changing where it should look for the licence file.

uglyog
2021-06-09 23:11
We should be able to fix that today

uglyog
2021-06-10 01:16
Looks like it has to be in either `/`, `/home` or `/home/pactflow` and the file has to be named `pactflow-onprem.lic`. I've raised a support ticket with a third party supplier to see if we can get it to use an environment variable.

s.goel
2021-06-10 08:57
has joined #pactflow

kondal.ramidi
2021-06-10 16:13
has joined #pactflow

richard
2021-06-11 00:13
has joined #pactflow

uglyog
2021-06-11 02:05
@c.pavan1986 there is an environment variable to change the directory, but the file name must be `pactflow-onprem.lic`

c.pavan1986
2021-06-11 02:09
Thank you. Can you please share the environment variable name? not able find it in documentation https://docs.pactflow.io/docs/on-premises/environment-variables

uglyog
2021-06-11 02:11
`RG_LIC_PATH`

c.pavan1986
2021-06-11 02:26
Thank you, from which version of onprem release is this variable available?

uglyog
2021-06-11 02:27
1.10.0 should work with that

uglyog
2021-06-11 02:27
I haven't tested it, though

c.pavan1986
2021-06-11 08:43
Thank you. Will give it try.

jwcarman
2021-06-11 14:23
has joined #pactflow

hello370
2021-06-11 14:58
has joined #pactflow

dawoud.sheraz
2021-06-11 15:22
Hello. Does pactflow and pact broker support SSO/SAML with OneLogin?


vikrant82
2021-06-12 12:16
has joined #pactflow

dawoud.sheraz
2021-06-14 06:40
Thank you, Matt.

daniel.bubenheim
2021-06-14 08:05
has joined #pactflow

matt.fellows
2021-06-14 08:23
Drop a line to with your business account details and SAML metadata (as per docs) when you're ready and we'll enable it for you!

joaoproenca
2021-06-14 10:15
has joined #pactflow

gayatree.eee
2021-06-14 11:20
Can you please share the pactflow on-premise release version where custom role feature is available

e.pittaluga.b
2021-06-14 16:34
has joined #pactflow

npatil
2021-06-14 17:28
has joined #pactflow

bethskurrie
2021-06-14 23:50
Hi @gayatree.eee we should have a release out soon.

lucas.rolle
2021-06-15 06:48
has joined #pactflow

caoilte
2021-06-15 11:36
has joined #pactflow

danielabbitt
2021-06-15 17:12
has joined #pactflow

tom.borglum
2021-06-15 17:29
has joined #pactflow

michael.branders
2021-06-16 06:57
has joined #pactflow

bethskurrie
2021-06-16 07:21
@i.pinzari please do send an email with the details of the pact, because I can look at the logs to see what Pactflow thinks has changed.

jedlicka
2021-06-16 10:12
has joined #pactflow

jpasse
2021-06-16 13:45
has joined #pactflow

jan.malkiewicz
2021-06-16 14:48
has joined #pactflow

jeen.broekstra
2021-06-17 06:13
has joined #pactflow

minijb225
2021-06-17 06:44
has joined #pactflow

c.pavan1986
2021-06-17 11:52
If the password of the postgres has been changed is there any to make pactflow use the updated password without restarting the container. Is there any other way other than environment variable to supply postgres password.

matt.fellows
2021-06-17 11:53
Not at this stage. I believe we discussing the possibility of AWS IAM access for you folks which would address this

dawoud.sheraz
2021-06-17 13:31
Hello. Not sure if this is the right place but what are the deployment options for pactflow? Are both options, on-premise/self-hosted and managed by Pactflow, available? Or is it just self-hosted/on-premise? Are there difference in pricing?

caoilte
2021-06-17 13:59
@caoilte has left the channel


matt.fellows
2021-06-17 23:55
We have a SaaS offering and an on-premise (i.e. self-hosted) one

matt.fellows
2021-06-17 23:55
the on-premise pricing is a little more expensive than the SaaS

matt.fellows
2021-06-17 23:55
Drop us a line at if you?d like to know more or be sent some more details

dawoud.sheraz
2021-06-18 05:00
thanks for sharing the link. I remember seeing this page before. I was trying to find the info on pricing page.

matt.fellows
2021-06-18 05:55
I?ll see about having it there also

tomknee1
2021-06-18 08:15
has joined #pactflow

rockin291
2021-06-19 05:18
has joined #pactflow

zainamro1
2021-06-20 17:17
has joined #pactflow

nferrazzano
2021-06-21 05:23
has joined #pactflow

lewis.prescott079
2021-06-21 12:55
has joined #pactflow

vlad
2021-06-21 18:23
has joined #pactflow

christopher.doherty
2021-06-21 19:01
has joined #pactflow

liorra
2021-06-22 04:17
has joined #pactflow

michael.branders
2021-06-22 06:31
I got a question about the users on pactflow. You have 2 subscription team and business on is 10 user the other 25. I work for a company that has over 100 IT personel. How would this work if we get pactflow? Would only 10 or 25 people be able to login to pactflow? This would have information for all developers not just some. Would love some more information on this.

matt.fellows
2021-06-22 06:33
We have plans that go well beyond it. We just stop at 50 online because usually people want to talk to us aver that

matt.fellows
2021-06-22 06:34
If you drop a line to we can share pricing and/or have a chat about how we can support you

matt.fellows
2021-06-22 06:34
I'm just out and about atm but will try to respond quickly

michael.branders
2021-06-22 06:34
Thats fine i was just wondering becous online it stopt at 25 and that was odd.

michael.branders
2021-06-22 06:37
I've tryed pact last week and now i have to make a presentation compairing you to spring cloud contract. But i want to be prepaired becouse if they choose pact then we have to get a pact broker. community or pactflow. But if it was limited to 25 that would def be an issue

matt.fellows
2021-06-22 06:41
You can use SCC with Pactflow, FWIW

matt.fellows
2021-06-22 06:41
So it isn't necessarily an either/or

michael.branders
2021-06-22 06:42
Yeah that i didnt get working :slightly_smiling_face:

michael.branders
2021-06-22 06:44
SCC i got working and pact on there own. I know there are alot of options to make pacts but the imput that i got from the dev community is lets choose a framework and work with it. So there not looking to combine right now :slightly_smiling_face:

matt.fellows
2021-06-22 06:45
Obviously we're biased, but I think there is some material floating about

matt.fellows
2021-06-22 06:46
Worth searching this workspace and http://docs.pact.io for comparisons

michael.branders
2021-06-22 06:46
and pact offers more then just jvm. Its nice to be able to make pacts with node (the frontends we make) and amqp what we use too. SCC is limited in that. So there you def win points :slightly_smiling_face:

joaoproenca
2021-06-22 09:32
hey folks I have a colleague who is doing a ramp up project where he will be evaluating pactflow. He signed up for a new free account to start looking at pactflow but somehow he can't get his password to work. Can anyone help me out in: 1. Unblocking his pactflow user 2. Inviting him to this slack space so that he can talk to you folks :slightly_smiling_face:

matt.fellows
2021-06-22 09:45
get them to send a request to and someone can help.

matt.fellows
2021-06-22 09:45
Check spam, and if there is a trailing space / character is the password

matt.fellows
2021-06-22 09:45
But we can reset etc from our end

joaoproenca
2021-06-22 09:48
according to him the problem is that he gets a temporary password in the email (with special characters) and then the login form looks like this

joaoproenca
2021-06-22 09:48
the verifications code is numeric

joaoproenca
2021-06-22 09:48
is he doing something wrong?

joaoproenca
2021-06-22 09:49
he's writing an email nevertheless

stanojevic.boban
2021-06-22 10:20
has joined #pactflow

miguel.carneiro
2021-06-22 12:51
has joined #pactflow

srinagasai.krishnasan
2021-06-22 17:35
has joined #pactflow

varnit.garg2424
2021-06-23 06:19
has joined #pactflow

varun.patil
2021-06-23 12:44
has joined #pactflow

varun.patil
2021-06-23 12:49
Hi All, I am conducting a POC and pactflow, i just wanted to know if we can publish pacts to pactflow using maven?

varun.patil
2021-06-23 12:49
I am wondering how can we set token and all


varun.patil
2021-06-23 15:01
Excellent Matt, thanks I missed it ..

varun.patil
2021-06-23 19:32
Hi All, what should the stateChangeUrl contain in the pom?

varun.patil
2021-06-23 19:32
is it the broker-url

varun.patil
2021-06-23 19:32
broker-url/tasks/pactStateChange

varun.patil
2021-06-23 19:33
I am using pactflow for one of our POC's trying to verify the pacts published by the consumer

varun.patil
2021-06-23 22:01
Hello Team, facing the below issue when trying to verify the pacts published by provider ..

varun.patil
2021-06-23 22:03
@RunWith(SpringRestPactRunner.class) @Provider("account-service") @PactBroker( host="http://myorg.pactflow.io", scheme = "https", authentication = @PactBrokerAuth(scheme = "basic", username = "sername", password = "password") ) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes={AccountBridgeApplication.class}) @ActiveProfiles("dv") public class AccountSeviceProviderContractTest { @TestTarget public final Target target = new SpringBootHttpTarget(); @State("Ban 3232 exists") public void accountExists() { // nothing to do, real service is used } }

varun.patil
2021-06-23 22:03
*Request to path '/' failed with response 'HTTP/1.1 401 Unauthorized'*

matt.fellows
2021-06-23 22:28
Varun - can you please wrap future code in code gates using the backtick (```) and also try to get in a thread?

matt.fellows
2021-06-23 22:33
`401` indicates your API has authentication on it

matt.fellows
2021-06-23 22:33
either that, or you?re not using an API token to get the pacts from pactflow

matt.fellows
2021-06-23 22:33
> authentication = @PactBrokerAuth(scheme = ?basic?, username = ?sername?, password = ?password?) you cannot use username/password here




varun.patil
2021-06-23 22:45
Sorry about that ..

varun.patil
2021-06-23 22:45
username and password was just was example

varun.patil
2021-06-23 22:45
i did not want to disclose

varun.patil
2021-06-23 22:46
I am using token , but this way also it gives me error

varun.patil
2021-06-23 22:46
@PactBroker(host = "${pactbroker.url:http://telus.pactflow.io}", authentication = @PactBrokerAuth( password = "", username = "zFaJyhilT-Ht_ATj8Jwy5Q"))

matt.fellows
2021-06-23 22:51
Why are you using that auth?


varun.patil
2021-06-23 22:54
The annotation @PactBrokerAuth must define the attribute username

varun.patil
2021-06-23 22:54
I have seen this example ..

varun.patil
2021-06-23 22:55
but it gives me error when i use it ..

varun.patil
2021-06-23 22:55
using pact provider 4.1.11 version

varun.patil
2021-06-23 22:58
And I am using junit 4 ..

varun.patil
2021-06-23 22:59
Sure thing. Sorry..

matt.fellows
2021-06-23 23:00
I just upgraded to 4.11 but it is using the Junit5 runner

matt.fellows
2021-06-23 23:01
If you could please share a reproducable example that would help

mselvakumar
2021-06-23 23:54
has joined #pactflow

srikanth.rachakonda
2021-06-24 02:32
has joined #pactflow

ali.akbar
2021-06-24 06:58
has joined #pactflow

erterpstra
2021-06-24 19:20
has joined #pactflow

varun.patil
2021-06-24 20:20
Hi Matt .. below is my class now .. ```package com.telus.starter.springboot.service; import org.junit.runner.*; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import com.telus.accountbridge.AccountBridgeApplication; import au.com.dius.pact.provider.junit.Provider; import au.com.dius.pact.provider.junit.State; import au.com.dius.pact.provider.junit.loader.PactBroker; import au.com.dius.pact.provider.junit.loader.PactBrokerAuth; import au.com.dius.pact.provider.junit.target.Target; import au.com.dius.pact.provider.junit.target.TestTarget; import au.com.dius.pact.provider.spring.SpringRestPactRunner; import au.com.dius.pact.provider.spring.target.SpringBootHttpTarget; @RunWith(SpringRestPactRunner.class) @Provider("account-service") @PactBroker(host = "http://telus.pact.io", scheme = "https", authentication = @PactBrokerAuth(token = "zFaJyhilT-Ht_ATj8Jwy5Q")) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes={AccountBridgeApplication.class}) @ActiveProfiles("dv") public class AccountSeviceProviderContractTest { @TestTarget public final Target target = new SpringBootHttpTarget(); @State("Ban 3232 exists") public void accountExists() { // nothing to do, real service is used } }```

varun.patil
2021-06-24 20:21
when i run this class i get the below exception

varun.patil
2021-06-24 20:21
```org.junit.runners.model.InitializationError at au.com.dius.pact.provider.junit.PactRunner.initialize(PactRunner.kt:93) at au.com.dius.pact.provider.junit.PactRunner.getChildren(PactRunner.kt:140) at org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426) at org.junit.runners.ParentRunner.getDescription(ParentRunner.java:351) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:91) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(```

varun.patil
2021-06-24 21:49
Any update on my issue matt. Appreciate your help..

matt.fellows
2021-06-25 02:12
Sorry I don?t have enough information here to resolve it Varun. Perhaps you could attach a full debug trace as an txt file, as well as a reproducable code repo? (Need the gradle/maven deps and all) and the commands you?re using to repro it. Ideally, a GH issue

matt.fellows
2021-06-25 02:12
Did the maven tutorial not help?

matt.fellows
2021-06-25 02:17
Also I have just regenerated your API token. You just pasted credentials to your account in a public forum which could lead to your account being compromised

abinzahid
2021-06-25 06:12
has joined #pactflow

c.pavan1986
2021-06-25 14:27
Trying to invoke the healthcheck apis is returning no response. https://host/diagnostic/status/heartbeat https://host/diagnostic/status/dependencies Tried with http as well. We are using pactflow 1.8.0 onprem

varun.patil
2021-06-25 18:45
Thanks alot Matt ..

varun.patil
2021-06-25 23:24
Hi Matt

varun.patil
2021-06-25 23:24
after you regenerated the token

varun.patil
2021-06-25 23:24
I am unable to publish the pacts

varun.patil
2021-06-25 23:25
using the new token as well

varun.patil
2021-06-25 23:25
Publishing 'pq-app-account-service.json' ... FAILED! 401 Unauthorized - Unauthorized. Please see https://docs.pactflow.io/docs/login-help for more information.

varun.patil
2021-06-25 23:25
getting this error

matt.fellows
2021-06-25 23:39
What does the log say with verbose on? Positive you're using the read write token?

varun.patil
2021-06-26 00:21
sorry matt. please ignore .. my maven is behaving wierd

varun.patil
2021-06-26 00:21
updated the version .. it looks fine ..

varun.patil
2021-06-26 00:24
Hi Matt, when i run a contract test to verify the pacts .. `@RunWith(SpringRestPactRunner.class)` @Provider("account-service") @PactBroker(host = "http://myorg.pactflow.io", scheme = "https", authentication = @PactBrokerAuth(token = "testtesttest")) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes={AccountBridgeApplication.class}) @ActiveProfiles("dv") public class AccountSeviceProviderContractTest { @TestTarget public final Target target = new SpringBootHttpTarget(); @State("Ban 3232 exists") public void accountExists() { // nothing to do, real service is used } }

varun.patil
2021-06-26 00:24
`java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)Lcom/google/gson/JsonElement;` at http://au.com.dius.pact.core.pactbroker.HalClient.handleHalResponse(HalClient.kt:320) at http://au.com.dius.pact.core.pactbroker.HalClient.getJson(HalClient.kt:312) at http://au.com.dius.pact.core.pactbroker.HalClient.fetch(HalClient.kt:273) at http://au.com.dius.pact.core.pactbroker.HalClient.fetch(HalClient.kt:268) at http://au.com.dius.pact.core.pactbroker.HalClient.navigate(HalClient.kt:261) at http://au.com.dius.pact.core.pactbroker.PactBrokerClient.fetchConsumers(PactBrokerClient.kt:94) at http://au.com.dius.pact.provider.junit.loader.PactBrokerLoader.loadPactsForProvider(PactBrokerLoader.kt:140) at http://au.com.dius.pact.provider.junit.loader.PactBrokerLoader.load(PactBrokerLoader.kt:92) at http://au.com.dius.pact.provider.junit.PactRunner.initialize(PactRunner.kt:85) at http://au.com.dius.pact.provider.junit.PactRunner.getChildren(PactRunner.kt:140) at org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426) at org.junit.runners.ParentRunner.getDescription(ParentRunner.java:351) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:91) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)

varun.patil
2021-06-26 00:24
sorry code block did not work :disappointed:

matt.fellows
2021-06-26 00:27
The heartbeat endpoint doesn?t return data, just a `200 OK`

matt.fellows
2021-06-26 00:29
The dependencies endpoint is protected by authorization (so it will need a bearer token)

matt.fellows
2021-06-26 00:29
I wouldn?t recommend using that endpoint for HA checks, just the heartbeat

matt.fellows
2021-06-26 00:31
can you please share your gradle file?

varun.patil
2021-06-26 00:45
sorry i fixed it again . .:)

varun.patil
2021-06-26 00:45
unable to publish to broker now ...

varun.patil
2021-06-26 00:45
pact.verifier.publishResults

varun.patil
2021-06-26 00:46
how can i set this system property in my contract test class

varun.patil
2021-06-26 00:46
my test class is above ..

jchandorkar
2021-06-26 09:01
has joined #pactflow

rani.sathya
2021-06-27 04:14
has joined #pactflow

cala.dev_pact
2021-06-28 04:07
has joined #pactflow

robert.rap
2021-06-28 06:34
has joined #pactflow

v-ratngupta
2021-06-28 07:13
has joined #pactflow

e.hallowell
2021-06-28 13:28
has joined #pactflow

mishalalexander20
2021-06-29 07:36
has joined #pactflow

lukemufc125
2021-06-29 07:57
has joined #pactflow

prash471
2021-06-29 09:43
has joined #pactflow

martijn.hagens
2021-06-29 10:12
has joined #pactflow

dimundo
2021-06-29 11:08
hello, is this valid one ? ``` % ping http://somename.pactflow.io PING http://prod.pactflow.io (54.79.255.137): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3```

dimundo
2021-06-29 11:09
and time to time i?m getting ```Call to fetch pacts from Pact Broker failed with an exception java.lang.RuntimeException: Call to fetch pacts from Pact Broker failed with an exception at au.com.dius.pact.provider.ProviderInfo.hasPactsFromPactBrokerWithSelectors(ProviderInfo.kt:95) at pact4s.ProviderInfoBuilder.applyBrokerSourceToProvider(ProviderInfoBuilder.scala:93) at pact4s.ProviderInfoBuilder.toProviderInfo(ProviderInfoBuilder.scala:65) at pact4s.PactVerifyResources.providerInfo(PactVerifyResources.scala:27) at pact4s.PactVerifyResources.providerInfo$(PactVerifyResources.scala:27)``` but this maybe for @kyle.florence

matt.fellows
2021-06-29 11:37
ICMP is not a supported protocol Dmitry

matt.fellows
2021-06-29 11:37
For no other reason than we don?t use it at Pactflow, and by default we only open network protocols/ports etc. for things we need

mikko.s.koskinen
2021-06-29 17:05
has joined #pactflow

zhaoyi0113
2021-06-30 02:13
has joined #pactflow

sgottipati
2021-07-01 06:02
has joined #pactflow

vshankar
2021-07-01 06:06
has joined #pactflow

e.generalov
2021-07-01 07:19
has joined #pactflow

eduards.klavins
2021-07-01 13:44
has joined #pactflow

felix.gomez
2021-07-01 14:38
has joined #pactflow

dimundo
2021-07-01 18:01
hi! i have pact between `A` and `B` also i have pact between `B` and `A` Pact between `B` and `A` is not verified yet, but between `A` and `B` - many times If i open Matrix in pactflow for `B` and `A` , i see validations between `A` and `B` only any ideas ? bug?

bbako
2021-07-01 20:51
has joined #pactflow

phil.armstrong
2021-07-02 06:49
has joined #pactflow

gargshubham49
2021-07-02 07:21
has joined #pactflow

bethskurrie
2021-07-02 07:47
@dimundo you said "Pact between `B` and `A` is not verified yet"

bethskurrie
2021-07-02 07:47
Why would you expect to see a row between B and A?

dimundo
2021-07-02 07:47
i expect to see nothing

bethskurrie
2021-07-02 07:47
I'm confused

bethskurrie
2021-07-02 07:47
You said there were verifications between A and B.

bethskurrie
2021-07-02 07:47
So you are seeing the A->B verifications.

dimundo
2021-07-02 07:47
so, there are pacts between 2 sides

dimundo
2021-07-02 07:48
each is consumer and producer

bethskurrie
2021-07-02 07:48
Yes, you have A-B and B-A pacts. You are seeing the verifications for the direction that has verifications and not seeing the verifications for the direction that does not have any.

bethskurrie
2021-07-02 07:48
What is not as expected?

dimundo
2021-07-02 07:49
does matrix includes both directions ?

bethskurrie
2021-07-02 07:49
Why would you expect to see nothing?

bethskurrie
2021-07-02 07:49
The matrix will show both directions, each as separate rows.


bethskurrie
2021-07-02 07:49
You are describing what I expect to see.

dimundo
2021-07-02 07:49
thats the catch

dimundo
2021-07-02 07:49
but it could be a bit confusing, imho

bethskurrie
2021-07-02 07:50
How could you display it any other way?

dimundo
2021-07-02 07:50
would it be better having matrix for 1 direction only ?

bethskurrie
2021-07-02 07:50
The consumer goes in one column, and the provider goes in the other.

bethskurrie
2021-07-02 07:50
you are seeing the rows for where one app has the role of consumer and the other has the role of provider

dimundo
2021-07-02 07:51
yes, thats clear

bethskurrie
2021-07-02 07:51
you are not seeing the rows (because they do not exist) for where they are in the reverse roles.

bethskurrie
2021-07-02 07:51
were you expecting the results to be combined into the one row?

dimundo
2021-07-02 07:51
but person, selecting direction in sidebar expects only that direction only ( as i could expect )

dimundo
2021-07-02 07:52
and sees a bunch in place of nothing

dimundo
2021-07-02 07:52
but ok. looks like its a feature

bethskurrie
2021-07-02 07:52
Ah, because you are looking at it in the context of a particular pact.

bethskurrie
2021-07-02 07:52
And the matrix shows the context of the entire integration.

dimundo
2021-07-02 07:52
exactly

bethskurrie
2021-07-02 07:53
We actually have an entirely new application version focussed UI designed, but not yet built.

bethskurrie
2021-07-02 07:53
This should address your suggestions.

bethskurrie
2021-07-02 07:54
At the moment, the Pactflow UI has the contract as the top level item, but really, it should be the application.

achuljyan
2021-07-05 12:11
has joined #pactflow

zhaoyi0113
2021-07-05 12:26
Hi There, a question about how to test API for mutation via pact. I have a rest API which is to create a customer. But the customer email is required and must be unique. If I create a `create customer` pact and publish it to the broker, the provider side can only run the test once. It will fail the second time because the same email already exists. How can I make a contract test for this mutation?

matt.fellows
2021-07-05 12:28
Check out provider states

matt.fellows
2021-07-05 12:28
If you haven?t already, I?d check out our workshops (howtolearn)

2021-07-05 12:28
Here are a number of useful hands-on labs that teach all of the key concepts https://docs.pact.io/implementation_guides/workshops

matt.fellows
2021-07-05 12:28
they?ll take you through the key features and reasoning

vinnys.lins
2021-07-05 13:49
has joined #pactflow

zhaoyi0113
2021-07-05 22:10
@matt.fellows thanks for your response. I think the example works because you can launch the application in your local. And use the provider url: `providerBaseUrl: "http://localhost:8080"`. In that way, you can set up all the mock data easily. But my application is deployed to AWS apigateway and a few lambdas behind it, I can?t launch it in a local environment. What is the best practise to verify pact against AWS apigateway?

matt.fellows
2021-07-05 22:32
I would usually not test via API Gateway directly

zhaoyi0113
2021-07-05 22:32
what is your approach for that?

matt.fellows
2021-07-05 22:35
I would usually test the lambda?s directly

matt.fellows
2021-07-05 22:35
We might have some docs on how to test API gateway elsewhere

matt.fellows
2021-07-05 22:35
I?ll see if I can find

zhaoyi0113
2021-07-05 22:36
how do you handle the deployment on AWS and run pact verify? Do you deploy first then run pact verify?

matt.fellows
2021-07-05 22:37
You have to verify first, otherwise you might deploy a breaking change

zhaoyi0113
2021-07-05 22:37
but how can I verify without a deploy?

matt.fellows
2021-07-05 22:37
well, because you?re deploying to an environment thins are a bit different. so you _can_ deploy, but it has to be a test environment obviously

matt.fellows
2021-07-05 22:38
I test lambdas locally (e.g. SAM, serverless offline etc.)

matt.fellows
2021-07-05 22:38
you don?t need to deploy a lambda to test it

zhaoyi0113
2021-07-05 22:38
ok, basically I need to deploy a temporary version of my backend, then verify, then deploy to the real environment

matt.fellows
2021-07-05 22:38
if you use SAM, you can test that locally too

zhaoyi0113
2021-07-05 22:40
I am using terraform


zhaoyi0113
2021-07-05 22:41
actually I have mixed environment, some projects are using serverless while some are using terraform


matt.fellows
2021-07-05 22:42
Sure, but a lambda is still a lambda, and should be able to be run like a unit test.

matt.fellows
2021-07-05 22:42
I would highly recommend you have an approach that enables unit testing of it if you can

zhaoyi0113
2021-07-05 22:44
what is the pacts I should publish from consumer side? The pacts should be rest based format right? like have `path`, `body`, etc. How can I use `pact` to verify something not match to what consumer published?

matt.fellows
2021-07-05 22:47
I?m not sure I follow, could you please elaborate on what you mean?

zhaoyi0113
2021-07-05 22:50
sure, the consumer is rest based client. So the pacts is in rest format. how can I verify the provider bypass api gateway?

matt.fellows
2021-07-05 22:52
right, so you?re saying because a lambda is not an HTTP endpoint, how to test it?

matt.fellows
2021-07-05 22:52
One option is to run a basic HTTP server in test to pass through the requests

matt.fellows
2021-07-05 22:53
e.g. express JS

zhaoyi0113
2021-07-05 22:55
alright thanks. I think I have to deploy it to a temporary environment for pact testing. After pass pact, it can be deployed to real environment. Put a mock http endpoint before lambda doesn?t test the resource mapping in api gateway.

matt.fellows
2021-07-05 22:58
It?s up to you. I don?t know about terraform tools for running gateway locally, but if they exist i?d want to know about it. Having to deploy is OK, but slows down feedback cycles (ideally you want to know prior to commit).

matt.fellows
2021-07-05 22:58
but better later than never!

matt.fellows
2021-07-05 22:58
There is no ?right? answer, so don?t feel like you?re doing it ?wrong?

zhaoyi0113
2021-07-05 22:59
sure, what I am thinking is to deploy the tempoaray environment when a PR is open, then run pact test on the PR environment, if it passes, it can be merged to master branch, then tear down the PR environment.

talank
2021-07-06 03:52
has joined #pactflow

juri.petersen
2021-07-06 07:29
has joined #pactflow

leolvicario
2021-07-06 07:36
has joined #pactflow

swoichhaa
2021-07-06 08:46
has joined #pactflow

ivo.velthoven174
2021-07-06 09:28
has joined #pactflow

fjtdg
2021-07-06 12:16
has joined #pactflow

steve.etherington
2021-07-06 16:44
has joined #pactflow

rosh.mjohn
2021-07-07 07:19
has joined #pactflow

mahajanalokkumar
2021-07-07 10:41
has joined #pactflow

jyiyng2002
2021-07-07 19:57
has joined #pactflow

splurgeop
2021-07-07 21:48
has joined #pactflow

kapoor.manil
2021-07-07 22:30
has joined #pactflow

pashas.2k3
2021-07-08 03:41
has joined #pactflow

vijayanaggella
2021-07-08 05:25
has joined #pactflow

ananthshenoy03
2021-07-08 05:46
has joined #pactflow

sai5i.islam
2021-07-08 06:40
has joined #pactflow

poorvasgokhale
2021-07-08 09:08
has joined #pactflow

suresh.thammishetti
2021-07-08 11:08
has joined #pactflow

steve.etherington
2021-07-08 15:01
Hi I am new to pactflow. I am working on a POC for OAS bi-directional contracts. We have some Dredd tests already so I have been trying to run this https://docs.pactflow.io/docs/examples/bi-directional/provider/dredd/readme

steve.etherington
2021-07-08 15:01
I can successfully run `make fake_ci` but running `make ci` fails, with a 500 error from pactflow. (I had to fake the two TRAVIS env vars) Is this project still expected to be working? I have just set up a new free pactflow account for this rather than pollute my company account. Was there any set up I needed to run before expecting this to work? ```error publishing contract + results Error: Request failed with status code 500 at createError (/Users/steve/depop/example-provider-dredd/node_modules/axios/lib/core/createError.js:16:15) at settle (/Users/steve/depop/example-provider-dredd/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/Users/steve/depop/example-provider-dredd/node_modules/axios/lib/adapters/http.js:260:11) at IncomingMessage.emit (node:events:377:35) at endReadableNT (node:internal/streams/readable:1312:12) at processTicksAndRejections (node:internal/process/task_queues:83:21) { config: { url: 'https://setherdredd.pactflow.io/contracts/provider/pactflow-example-provider-dredd/version/91a4000126ca47947e01191824efb16e8b9bc7ac', method: 'put',```

steve.etherington
2021-07-08 15:03
Is this example a good place for me to start or is it outdated??

steve.etherington
2021-07-08 15:43
I have solved the 500 error. But does this example show the latest/best way to to do OAS testing?


matt.fellows
2021-07-08 22:36
that example should definitelry still work

matt.fellows
2021-07-08 22:36
I?ll check this morning

bethskurrie
2021-07-09 00:15
@steve.etherington that 500 is meant to be a 400. It's on my todo list.

michael.katende
2021-07-09 10:41
has joined #pactflow

marcin.baranowski953
2021-07-09 10:42
has joined #pactflow

bedfordwest
2021-07-10 22:21
has joined #pactflow

sams.prashanth
2021-07-11 10:40
Is there any time limit for the pactflow auth token expiry? or no expiry date?


matt.fellows
2021-07-11 10:41
You can configure the expiration at the account level via system preferences.

matt.fellows
2021-07-11 10:41
man, Beth is constantly getting in first tonight!

bethskurrie
2021-07-11 10:42
:stuck_out_tongue:

sams.prashanth
2021-07-11 10:43
Perfect :blush:

sams.prashanth
2021-07-11 10:43
Thank you @bethskurrie @matt.fellows

firstamit
2021-07-11 14:07
has joined #pactflow

omar554
2021-07-11 21:54
has joined #pactflow

sams.prashanth
2021-07-12 06:25
Crazy question: is it possible to self-host pactflow system for the paid enterprise version?

sams.prashanth
2021-07-12 06:28
Just asked as we need to open our internal network to trigger jobs from the pactflow using webhooks

matt.fellows
2021-07-12 06:28
not crazy, and yes you can (we have an on-premises version)


sams.prashanth
2021-07-12 06:30
Wow! That?s really nice :+1:

sams.prashanth
2021-07-12 06:35
Webhookless feature within the CI would be a big relief :blush:

matt.fellows
2021-07-12 06:51
Feel free to comment / contribute to that discussio

matt.fellows
2021-07-12 06:51
I?m hoping it could mean that customers that currently have those kinds of restrictions could work around it this way

sams.prashanth
2021-07-12 07:39
Sure @matt.fellows

k.deepupardha
2021-07-12 10:23
has joined #pactflow

lumenofor
2021-07-12 10:46
has joined #pactflow

jayr.motta
2021-07-12 13:57
has joined #pactflow

jayr.motta
2021-07-12 14:01
Hi there :wave: I have a service that requires a state to be setup before I can observe if the behavior is working as expected, how can I verify a contract if the simulated consumer will only replay a simple request but not setup such data?


steve.etherington
2021-07-12 16:06
Hi I have been trying to set up an OAS provider test using one of our existing consumer tests. Is this a ?normal? verification failure, or is it an error within the verification process ```{"error":{"message":"Error executing pact/OAS verification. Error reference sBldFsWvJA."}}```

steve.etherington
2021-07-12 16:08
```$> ${PACT_CLI} broker can-i-deploy --pacticipant mobile-api-sellerhub --version c06b16d --to dev Computer says no ¯_(?)_/¯ CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS? | RESULT# ---------|------------|----------------------|-----------|----------|-------- iOS-app | cc1d3c9... | mobile-api-sellerhub | c06b16d | false | 1 VERIFICATION RESULTS -------------------- 1. https://depop.pactflow.io/hal-browser/browser.html#https://depop.pactflow.io/contracts/provider/mobile-api-sellerhub/version/c06b16d/consumer/iOS-app/pact-version/b8e788b9bde35c9a9bbd1500db1863628391623e/verification-results (failure) The cross contract verification between the pact for the latest version of iOS-app with tag dev (cc1d3c9c7d9599b68b86782aa6830663667c9440) and the oas for version c06b16d of mobile-api-sellerhub failed```

steve.etherington
2021-07-12 16:08
```$> curl -H 'Authorization: Bearer <secret>' https://depop.pactflow.io/contracts/provider/mobile-api-sellerhub/version/c06b16d/consumer/iOS-app/pact-version/b8e788b9bde35c9a9bbd1500db1863628391623e/verification-results {"summary":{"success":false},"crossContractVerificationResults":{"success":false,"results":{"error":{"message":"Error executing pact/OAS verification. Error reference sBldFsWvJA."}},"verificationDate":"2021-07-12T15:10:25.418+00:00","verifier":"atlassian-swagger-mock-validator","verifierVersion":"10.0.0"},"providerContractVerificationResults":{"success":true,"content":"VE9ETwo=","contentType":"text/plain","verifier":"verifier"},"_links":{"self":{"title":"Cross contract and provider contract verification results","href":"https://depop.pactflow.io/contracts/provider/mobile-api-sellerhub/version/c06b16d/consumer/iOS-app/pact-version/b8e788b9bde35c9a9bbd1500db1863628391623e/verification-results"}}}```

steve.etherington
2021-07-12 16:09
? the report content published in the provider contract is made up ?

doug.shattuck
2021-07-12 20:26
has joined #pactflow

matt.fellows
2021-07-12 22:31
You could definitely use injected provider states, but just standard provider states should be fine in most cases

matt.fellows
2021-07-12 22:31
what language are you using?


matt.fellows
2021-07-12 22:32
I?d suggest running one of the workshops (howtolearn)

2021-07-12 22:32
Here are a number of useful hands-on labs that teach all of the key concepts https://docs.pact.io/implementation_guides/workshops

matt.fellows
2021-07-12 22:32
they?ll teach you these concepts

matt.fellows
2021-07-12 22:36
That looks to be a different error Steve

matt.fellows
2021-07-12 22:36
We?ll look into it

bethskurrie
2021-07-12 23:53
@steve.etherington I'm looking into the error, but I can't see what has caused it. There was a runtime error when comparing the oas and the pact, and that error result has now been saved. Can you make a change to either the pact or the oas and try again please?

bethskurrie
2021-07-12 23:53
That will cause the comparison to run again.

bethskurrie
2021-07-13 00:28
Ok, I believe I've identified the cause. Working on a fix now.

bethskurrie
2021-07-13 03:11
@steve.etherington there are actually two issues. one is a bug, and one is that the verifier only works for oas 3.0, not swagger 2.0 files.

bethskurrie
2021-07-13 03:26
No, I'm wrong, sorry. > A command line tool that confirms mock request and responses conform to the schema specified in a Swagger 2 or OpenApi 3 specification.

matt.fellows
2021-07-13 04:01
Steve - so there is definitely a bug on our side we need to fix, as Beth has alluded to. We also have a backlog item to fix some validation response that would have made it easier to diagnose your problem

matt.fellows
2021-07-13 04:02
There were also a few problems with your spec: 1. Duplicate oauth security configs 2. Missing absolute links in the security definitions of authorizationUrl and tokenUrl 3. use of `anyOf` in a swagger 2.0 format (only available in OAS 3) I?d recommend using tools like https://editor.swagger.io/ if you?re authoring the file by hand, to ensure it?s valid first.

jayr.motta
2021-07-13 07:29
Thank you @matt.fellows, I?ll check the workshops

sorin_balbae
2021-07-13 07:41
has joined #pactflow

steve.etherington
2021-07-13 08:22
Thanks for this @bethskurrieand @matt.fellows. I was generating the swagger yml from an Apiary API blueprint file using LucyBot api-spec-converter. Our apis are currently documented with apib files and validated with Dredd. I was hoping to fit pact into that workflow. You have given me a few pointers to try to find workarounds or solutions.

sorin_balbae
2021-07-13 08:50
hi, new guy here with a question :-) I ran locally a set of consumer tests that generated and successfully published a contract to pactflow. the contract is not visible under the "overview" section of the consumer-provider interaction, but I could find it via direct link and I also see it in the "matrix" (it was also verified by the provider). running the same way (with the same version and tag) worked a week ago and the contract was visible under "overview"; other colleagues running the exact same code today get the contracts published and visible. since my last successful publication, someone else cleaned up old interactions and contracts using the same version and tag. browser cache cleanup did not change the situation. anyone experienced something similar? any suggestions or explanations? thanks!

matt.fellows
2021-07-13 08:54
Can you show a screen of what you're expecting to see Sorin? Is it a new integration, or just a new version of a consumer?

dimundo
2021-07-13 08:55
do you have bidirectional contract ?


sorin_balbae
2021-07-13 09:11
the screenshot won't help, as we have a lot of interactions listed from different branches and local runs the initial contract was published under sorinTestTag/sorinTestVersion I had several versions of it, verified by the provider then a cleanup was performed - interactions deleted, contract deleted (not 100% sure all verification results were deleted before the contract) now I published the same contract under the same tag and version, but I cannot see it in the overview tab I can see it in the matrix and I can see the webhook was triggered, though *UPDATE:* I changed the tag and version to sorin_Tag/sorin_Version and the contract is also visible in the "overview"

akara
2021-07-13 10:34
has joined #pactflow

james_fraser
2021-07-13 11:39
Hey there :wave: does anyone know if Pactflow has a status page or anything to notify of potential outages or problems?

james_fraser
2021-07-13 11:41
Never mind - just found it: https://status.pactflow.io/

matt.fellows
2021-07-13 11:52
that?s the one - something wrong?

james_fraser
2021-07-13 11:55
No worries - all good :smile: I?m just adding checks for external tooling at work so we can catch any issues

paulorochag
2021-07-13 11:59
does the status page have RSS?

nathan.derave
2021-07-13 12:28
has joined #pactflow

steve.etherington
2021-07-13 12:53
I tried using apib2swagger for the swagger generation. It also creates swagger v2 with an `anyOf` field. The resulting error message was ```{ "error": { "message": "Error executing pact/OAS verification. Error reference niIkecxGoe." } }```

james_fraser
2021-07-13 12:56
Nothing obvious for RSS that I can see @paulorochag, but it does have a Slack integration

paulorochag
2021-07-13 12:59
I had the same perception, thank you very much @james_fraser

james_fraser
2021-07-13 13:03
No worries :thumbsup:

andjela.rajic
2021-07-13 13:06
~\\\\~

steve.etherington
2021-07-13 13:43
I also tried on another service, with swagger that does not include anyOf. This also fails with ``` "error": { "message": "Error executing pact/OAS verification. Error reference JvqTfXjoPD." }```

matt.fellows
2021-07-13 13:49
Thanks, if you could please drop a support ticket to with the OAS file we can look tomorrow. There is another issue which needs to be fixed and released which is causing the error reference (we've identified and have created a patch that needs to be verified)

matt.fellows
2021-07-13 13:49
Have you checked the file in http://editor.swagger.io?

steve.etherington
2021-07-13 15:29
No I haven?t checked them in the swagger editor - I need to be able to auto-generate them from our existing apib files. If I can?t do that we will just go with scalapact (or pact-jvm) instead.

steve.etherington
2021-07-13 15:38
I have sent the files

steve.etherington
2021-07-13 15:41
? all 3 files have errors reported by the swagger editor :disappointed: I wonder if there is some other apib to swagger converter I can try :thinking_face:

matthew.schaad
2021-07-13 21:29
has joined #pactflow

neenad.jadhavgre
2021-07-13 22:30
has joined #pactflow

kevin.monteiro
2021-07-14 00:57
has joined #pactflow

matt.fellows
2021-07-14 01:29
Yeah, I can?t speak for the generator you?re using, but you may need to do some post-processing (scriptable) to fix any problems.

matt.fellows
2021-07-14 01:29
If the OAS is invalid, it?s obviously not going to work

matt.fellows
2021-07-14 01:29
thanks for sharing though

cristian
2021-07-14 06:18
has joined #pactflow

sorin_balbae
2021-07-14 06:46
the pact is in only one direction. seems related to how pactflow keeps and re-uses past verifications.

steve.etherington
2021-07-14 09:15
As mentioned in the support ticket, https://www.apimatic.io/ generates valid swagger v2 for my apib files. (It?s not free, though.)

michal.bernhard
2021-07-14 11:16
has joined #pactflow

koradrop
2021-07-14 13:05
has joined #pactflow

richard.jones254
2021-07-14 23:53
has joined #pactflow

bethskurrie
2021-07-15 00:34
@sorin_balbae I'm not sure what would be causing this issue, but please do let us know if you see it again, so we can do some debugging.

edanielsen
2021-07-15 00:46
has joined #pactflow

abatan.k
2021-07-15 03:48
has joined #pactflow

abatan.k
2021-07-15 03:52
hello, i just register for free account on Pact flow, but i cannot access to my space, i did receive an email which told me that i could login with my github credentials, but when i try it doesn't work. I tried to reset my password, but i never get the mail with the code in order to set a new password... Do you have any idea how i can access my space ??

matt.fellows
2021-07-15 03:53
Can you please DM us with the details? We can take a look

abatan.k
2021-07-15 03:53
I just got the mail :sweat_smile: with my credentials

abatan.k
2021-07-15 03:56
Do you have a Dark Theme for PactFlow ? :slightly_smiling_face:

matt.fellows
2021-07-15 04:15
haha no, not yet sorry!

mandeep302755
2021-07-15 04:49
has joined #pactflow

mahajanrupali22
2021-07-15 05:46
has joined #pactflow

hylke.de.jong
2021-07-15 12:49
has joined #pactflow

efemgy
2021-07-15 14:27
has joined #pactflow

sorin_balbae
2021-07-15 14:37
At this point I gave up the old tag and using a new one (no issues here). But if I experience this again, I'll let you know.

efemgy
2021-07-15 14:53
Hi, I'd like to know if I can create a webhook to be only triggered when a contract content changes and not when the tag does. I only see the option for both. Thanks


amreenshaik.basha
2021-07-16 04:06
has joined #pactflow

efemgy
2021-07-16 08:47
Cool, thanks! :smile:

steve.etherington
2021-07-16 11:03
I have been able to verify an OAS provider against a consumer, but have not been able to get the verification results published to http://pactflow.io UI. Can anyone help?

matt.fellows
2021-07-16 11:04
Ah, the UI is not currently available

matt.fellows
2021-07-16 11:04
(we?re still in developer preview, the roadmap can be seen here: https://docs.pactflow.io/docs/workshops/bi-directional/#high-level-roadmap)

steve.etherington
2021-07-16 11:05
Thanks @matt.fellows

matt.fellows
2021-07-16 11:05
but awesome to hear you got the verification going!!

matt.fellows
2021-07-16 11:05
We would have liked to progress it a bit faster, however it?s taken a little longer to hire than we?d hoped. We have a new starter on Monday and are close to signing on another - stay tuned!

rhian.van.esch
2021-07-16 12:14
has joined #pactflow

wilco.van.esch
2021-07-16 12:30
has joined #pactflow

karl.morrison
2021-07-16 12:56
has joined #pactflow

timothyjabez
2021-07-16 17:23
has joined #pactflow

ppdnguyen
2021-07-18 16:23
has joined #pactflow

cgoodison
2021-07-18 23:56
has joined #pactflow

2021-07-19 03:56
Notification from *Pactflow Contract Testing Platform* :ghost:

c.pavan1986
2021-07-19 11:16
The database connections in pactflow are active always. Say there is no activity on pactflow for more than 24hrs, would the database connections created when the container comingup seem to remain active. Or would they get closed?

sripathi
2021-07-19 12:30
has joined #pactflow

calvin.krist
2021-07-19 15:29
has joined #pactflow

vinay.viswanadha
2021-07-19 15:30
has joined #pactflow

brian.mitchell
2021-07-19 15:37
has joined #pactflow

mike.geeves064
2021-07-19 18:07
has joined #pactflow

bethskurrie
2021-07-19 22:24
@c.pavan1986 I don't know the answer to that, but you'll probably find it in the Sequel documentation http://sequel.jeremyevans.net/

bethskurrie
2021-07-19 22:24
Are you noticing any issues?

bethskurrie
2021-07-19 22:27
The underlying database specific library is this one https://deveiate.org/code/pg/

ben.clare2
2021-07-20 08:16
has joined #pactflow

rafael.moral
2021-07-20 11:48
has joined #pactflow

andrii.rakhimov
2021-07-20 23:06
has joined #pactflow

boris.gordon
2021-07-20 23:25
has joined #pactflow

matt.fellows
2021-07-21 06:31
:wave: Hi folks, one final round for our feedback request *- I?d like to know how we can improve Pactflow* (and by extension, also Pact)*.* _Can you spare a few minutes to tell me how you use Pactflow, what you like and how we can improve?_ _Your feedback is important to the team and me to help improve aspects of our product, such as:_ ? _New features - for Pactflow and for the OSS Pact Broker_ ? _Support and documentation_  ? _The new user onboarding experience_ _The survey will take between five and seven minutes time to complete._ _As a thank you, we?re pleased to *offer you an upgrade* to your current Pactflow plan. See all the details via the link_ https://dius.typeform.com/to/XSlrZYAB

ryn.anderson
2021-07-22 17:41
has joined #pactflow

schakalabbi
2021-07-22 21:29
has joined #pactflow

uryadov212
2021-07-23 06:15
@uryadov212 has left the channel

tjones
2021-07-23 09:02
https://docs.pact.io/help/amas/ ^ Should this be in the pactflow docs?

bethskurrie
2021-07-23 09:05
So only Pactflow customers should know about it?

matt.fellows
2021-07-23 09:05
I don't think so, we only talk about Pact here, in fact, the topics have exclusively come from questions that come from those forum

matt.fellows
2021-07-23 09:06
But that may change long term so we'll need to be vigilant

tjones
2021-07-23 09:08
I think the document is written as if it's in the pactflow docs. > Pactflow runs regular monthly AMA's then > You can watch all of our previouss AMA's (also I just noticed there's a doubled s there)

matt.fellows
2021-07-23 09:08
Ideally we have maintainers join us (hence your invite!) But we've been wary of people's time

matt.fellows
2021-07-23 09:09
We are paid to work on pact so can justify it.

tjones
2021-07-23 09:10
I think there are several options. 1) We could correct the document so it's written from a Pact perspective 2) We could move the document as-is to Pactflow (and link it here - "Pactflow runs regular monthly AMAs, read about them at <link>") 3) We could make them the "Pact AMA hosted by Pactflow" 4+) Other options that I haven't thought of I don't really have an opinion on which is better, but I think in the current state the document doesn't feel like it fits in the pact docs.

matt.fellows
2021-07-23 09:11
3 makes sense

matt.fellows
2021-07-23 09:11
It's an example of where I wanted to make it clear that Pactflow ran it, but it's currently completely OSS focused

tjones
2021-07-23 09:13
For option 3, what about swapping: "Pactflow runs regular monthly AMA's" for "We have regular monthly AMAs, currently hosted by Pactflow"?

matt.fellows
2021-07-23 09:13
I think having agreed guidance on those language will help, but would love a shared session where we can collaboratively work out a longer term solution

tjones
2021-07-23 09:13
The meaning is the same for people who already know there's a difference, and it's less likely to mislead those who don't.

matt.fellows
2021-07-23 09:14
We should also make it easier/clearer on how to ask


tjones
2021-07-23 09:17
^ For review and merge by someone else

tjones
2021-07-23 09:18
(I fixed the misspelling directly on master)

tjones
2021-07-23 09:20
> So only Pactflow customers should know about it? I 100% think that everyone should know about the AMAs, and I think they're a great service to the community :blue_heart:. I'm just defending the OSS docs from accidental "we" as pactflow.

matt.fellows
2021-07-23 09:27
All good

matt.fellows
2021-07-23 09:28
Will look later tonight if I'm back online (minor cold but energy levels low)

matt.fellows
2021-07-23 09:28
Thanks for raising

tjones
2021-07-23 09:57
> energy levels low Tell me about it. I?ve been struggling all week. So many things I meant to do.

consulting
2021-07-23 12:33
has joined #pactflow

galante2123
2021-07-23 14:14
has joined #pactflow

dc113604
2021-07-23 14:39
has joined #pactflow

tjones
2021-07-25 02:39
@kamoljan spotted this repeated `are` in the pactflow docs: https://pact-foundation.slack.com/archives/CAN147DFD/p1627178501067100

dsinecos
2021-07-26 04:49
has joined #pactflow

mebenhoeh
2021-07-26 05:20
has joined #pactflow

dsmileb
2021-07-26 16:06
has joined #pactflow

hazel.wright
2021-07-26 19:04
has joined #pactflow

matt682
2021-07-27 01:32
has joined #pactflow

c.pavan1986
2021-07-27 08:14
The person who logs into pactflow is becoming an admin user is there a way to change this, like make someother user administrator and make the first loggedin user to nonadmin user

matt.fellows
2021-07-27 08:34
whoever the first user is can make a new admin, and the new admin can remove the first users admin privilege

c.pavan1986
2021-07-27 08:50
From the settings > users. I am not able to see a checkbox for making first login user non admin user

matt.fellows
2021-07-27 08:51
Are you an admin?

c.pavan1986
2021-07-27 08:51
Looks like role modification for first login user is not allowed.

matt.fellows
2021-07-27 08:52
That doesn?t sound right to me, but I may be wrong about it.

matt.fellows
2021-07-27 08:52
Feel free to DM me the screen you see so I can help

c.pavan1986
2021-07-27 08:52
Yes i am an admin user

c.pavan1986
2021-07-27 08:52
Sure

c.pavan1986
2021-07-27 09:40
Sorry my bad I was looking into wrong environment..

c.pavan1986
2021-07-27 12:25
The users logging in after the first user are by default getting assigned test maintainer role. Is there a way by default assign Viewer role.

matt.fellows
2021-07-27 12:38
In the next version you?ll be able to configure this via the UI/API (it?s just been added to our hosted version)

matt.fellows
2021-07-27 12:38
I think it can be done via the DB

matt.fellows
2021-07-27 12:38
Please drop a support ticket to and we can track it with you

ufuk.ozcelik
2021-07-27 19:39
@ufuk.ozcelik has left the channel

vbhardwaj.eminent
2021-07-28 05:15
has joined #pactflow

miguel.panelo
2021-07-28 07:29
has joined #pactflow

otaviio
2021-07-28 07:57
has joined #pactflow

c.pavan1986
2021-07-28 09:16
PACTFLOW_MASTER_ENCRYPTION_KEY/PACTFLOW_MASTER_SECRETS_ENCRYPTION_KEY, PACTFLOW_API_TOKEN_ENCRYPTION_ENABLED, PACTFLOW_API_TOKEN_IV. Looks like configuring these env variables will encypt the saas_api_tokens. We are currently using 1.8.0, will be moving to 1.11.0. Just want to know what is the encryption algorithm used and we can still get the decrypted token from settings>apitokens>copy token right?

c.pavan1986
2021-07-28 09:17
Can you also please share any documentation related to PACTFLOW_ADMIN_API_KEY

patrice.krakow
2021-07-28 10:00
has joined #pactflow

david.simpson
2021-07-28 12:51
has joined #pactflow

e.alderson004
2021-07-28 17:17
has joined #pactflow

bethskurrie
2021-07-28 23:58
@c.pavan1986 it uses aes-256-cbc encryption. There are some technical reasons why that particular algorithm is used (it has to be reversible so you can get the token back, amongst other reasons).

bethskurrie
2021-07-28 23:58
> we can still get the decrypted token from settings>apitokens>copy token right? Yes.

bethskurrie
2021-07-28 23:59
You shouldn't need to use the PACTFLOW_ADMIN_API_KEY Pavan, as you are using federated authentication. That's only required for setting up the initial admin user.

jdalessandro
2021-07-29 07:27
has joined #pactflow

sams.prashanth
2021-07-29 09:46
Is there any documentation for handling PactMismatchesException? ```au.com.dius.pact.consumer.PactMismatchesException: The following requests were not received: method: POST path: /v1/process query: {} headers: {xyz-xyz-Id=[xyz-xyz-xyz-xyz-xyz], xyz-Request-Id=[xyz], xyz-Accept-Version=[v1]} matchers: MatchingRules(rules={}) generators: Generators(categories={}) body: PRESENT([])```

matt.fellows
2021-07-29 09:51
Each language is different, but reading that it seems your test didn't make the call to `/v1/process`

matt.fellows
2021-07-29 09:52
Logs might show if any requests were made, usually if a request is made you also see an unexpected event for things it wasn't expecting

eric.tang1
2021-07-29 16:22
has joined #pactflow

todd.lemmonds
2021-07-29 16:24
Hello Everyone...in all the examples we've seen, contract testing has mainly been with JSON message payloads. Does Pactflow support XML based message payloads? @eric.tang1

matt.fellows
2021-07-29 22:07
Hello!