vicky
02/25/2025, 10:19 AMLewis Cowles
02/25/2025, 11:49 PMAkash Kumar Singh
02/26/2025, 12:21 PMDilip Punna
02/27/2025, 3:59 PMcan-i-deploy
to environment staging
from the provider, so far i have done the following
⢠Publish consumer contracts
⢠Added provider verification for the above consumer
⢠Added the webhook verification when consumer changed something
Here is the error from provider
pact-broker can-i-deploy \
--pacticipant=participant-video-service \
--version=33719d37665b7f096c6e88036cd5194faab6e4f8 \
--to-environment=staging \
--broker-base-url="<https://usertesting.pactflow.io>" \
--broker-token="<>" \
--output=json
{
"summary": {
"deployable": null,
"reason": "There is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and the version of analytics-video-data-service currently in staging (4474f9fd7db43b47b1d9bb390e32a4f29faf7b55)\nThere is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and a version of data-platform currently in staging (no version is currently recorded as deployed/released in this environment)\nThere is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and a version of participant-test-plan-service currently in staging (no version is currently recorded as deployed/released in this environment)\nThere is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and a version of participant-video-manager-MESSAGE currently in staging (no version is currently recorded as deployed/released in this environment)\nThere is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and a version of participant-video-manager-REST currently in staging (no version is currently recorded as deployed/released in this environment)",
"success": 1,
"failed": 0,
"unknown": 5
},
"notices": [
{
"type": "error",
"text": "There is no verified pact between version 33719d37665b7f096c6e88036cd5194faab6e4f8 of participant-video-service and the version of analytics-video-data-service currently in staging (4474f9fd7db43b47b1d9bb390e32a4f29faf7b55)"
},
Kevin de Boer
03/13/2025, 12:25 PMJustin Gilroy
03/14/2025, 9:03 PMFeisal Ahmad
03/20/2025, 5:06 PMrunTest
method is called which calls pactffi_create_mock_server_for_transport
I see the StartMockServer
method being called on the plugin with the JSON pact only containing the interactions defined up to that point.
Now the part I donât understand is what the mock server is supposed to do here, is it supposed to listen for all of the defined requests? If so, how are you supposed to distinguish between interactions with the same request but with different provider states? Or is the idea that the mock server only responds to the last defined interaction?Feisal Ahmad
03/31/2025, 3:22 PMpactffi_matches_json_value
function, and are seeing some unexpected behavior for some more advanced rules where the check passes even though it shouldnât⌠For example, with an arrayContains
matching rule, no error is returned even though an array with one element that doesnât satisfy the matching rules is passed to it.
Hereâs the line in the pactffi log for the check:
2025-03-31T15:16:12.632536Z DEBUG ThreadId(01) pact_matching::json: JSON -> JSON: Comparing '[{"baz":42,"foo":"bar"}]' to '["bla"]' using ArrayContains([(0, MatchingRuleCategory { name: BODY, rules: {DocPath { path_tokens: [Root, Field("baz")], expr: "$.baz" }: RuleList { rules: [Type], rule_logic: And, cascaded: false }} }, {})]) -> Ok(())
Weâre using pactffi release 0.4.26 btw, am I missing something here?Gustavo Souza
04/03/2025, 7:30 PMError.
412: We only support one authentication type at this time. Please try the type you used to sign up with.
Otoniel Rodriguez Delgado
04/04/2025, 5:19 PMJun Yi
04/10/2025, 3:14 AMstaging
and production
, which may contain different code as features are tested in staging before being rolled out to production.
1. Would it make sense to maintain separate sets of Pact stages for each branch?
2. I've observed that when a webhook is triggered, the verification always runs against the main branch (staging), regardless of which branch initiated the process. This could potentially cause issues when the branches diverge.
Any suggestions on how we can improve this setup or handle branch-specific verification more effectively?
Thanks!
Slack ConversationAlan Wong
04/25/2025, 1:14 PM{
"data": [
{
"id": "123456789"
},
{
"id": "111111111",
"optional_stuff": {
"data_map": {
"blah_1": true,
"blah_2": 123456
}
}
}
]
}
So my question is how to write the pact contract such that "id"
is mandatory but "optional_stuff"
is optional? At the moment I have to only specify the "id"
part as it's unclear if pact supports optional data.Tú Phấm
04/26/2025, 3:54 AMJun Yi
04/28/2025, 3:33 AMverifier = Verifier().set_info(name=PROVIDER_NAME, url=PROVIDER_URL)
verifier.broker_source(url=URL(settings.pact_flow_url), token=settings.pact_broker_token)
verifier.set_state(url=PROVIDER_URL / "_pact" / "callback", teardown=True)
verifier.filter_consumers(consumer_name)
verifier.set_publish_options(version=str(version))
verifier.verify()
Thanks for your help!Alessandro
05/07/2025, 11:39 AMPavanraj Ramisetty
05/07/2025, 9:55 PMPascal
05/08/2025, 2:36 PMPascal
05/08/2025, 2:36 PMPascal
05/08/2025, 2:45 PMPavanraj Ramisetty
05/09/2025, 5:32 AMVignesh
05/12/2025, 1:22 PMTim Vahlbrock
05/14/2025, 12:54 PMAntonio BlandĂłn Torres
05/16/2025, 9:40 PMMartin Konir
05/21/2025, 10:35 AMBACKWARD
compatibility type).
Could you help clarify the main business cases for using both Pact and Schema Registry together? Specifically:
⢠If we are already using the Schema Registry to enforce message structure and compatibility, does Pact contract testing become redundant?
⢠Or does Pact provide additional value beyond schema validation?
⢠If we decided to write contract tests for a Apache Pulsar messaging system, does Pact have any sort of integration - is it ready for that? (I wasn't able to find the necessary materials on this topic - everything is kafka centered đ
).
Thank you very much for your insights!Matt (pactflow.io / pact-js / pact-go)
Jordan Nazemi
06/03/2025, 3:21 PMAPI Base URL
in their OAS. When we try to generate Pacts with Cypress for it on the frontend, the entire path (include that base URL) is provided as the consumer contract. The issue is, Pactflow doesn't seem to match it with the base URL and were having to strip it from the JSON before pushing it up to Pactflow. ie
⢠Consumer pact states the path is service/v1/endpoint
⢠Provider states the base url is service/v1
and the endpoint is /endpoint
⢠Pactflow marks the two as incompatible UNLESS we strip the service/v1
from the JSON generated by the Cypress Pact adapter before we push it to Pactflow
Any ideas of a better solution that stripping?Erich Zimmerman
06/17/2025, 5:46 PMDilip Punna
06/19/2025, 5:00 PMZachary Lysobey
06/20/2025, 12:23 AMhttps://pact.io/it seems like maybe the JS is broken on the page, and doing stuff like clicking
view on Github
doesn't work for meBogdan Barliga
06/23/2025, 1:30 PM