1"use strict";(self.webpackChunkpartners=self.webpackChunkpartners||[]).push([[7],{15680:(e,t,a)=>{a.d(t,{xA:()=>g,yg:()=>m});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},g=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,g=o(e,["components","mdxType","originalType","parentName"]),p=u(a),c=r,m=p["".concat(s,".").concat(c)]||p[c]||d[c]||i;return a?n.createElement(m,l(l({ref:t},g),{},{components:a})):n.createElement(m,l({ref:t},g))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,l[1]=o;for(var u=2;u<i;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},60534:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(58168),r=(a(96540),a(15680));const i={title:"API Hub Migration Guide"},l=void 0,o={unversionedId:"docs/troubleshooting/apihub",id:"docs/troubleshooting/apihub",title:"API Hub Migration Guide",description:"This guide helps you transition from PactFlow standalone to your API Hub account.",source:"@site/docs/docs/troubleshooting/apihub.md",sourceDirName:"docs/troubleshooting",slug:"/docs/troubleshooting/apihub",permalink:"/docs/troubleshooting/apihub",draft:!1,editUrl:"https://github.com/pactflow/docs.pactflow.io/edit/master/website/docs/docs/troubleshooting/apihub.md",tags:[],version:"current",lastUpdatedBy:"MateuszKupczakSB",lastUpdatedAt:1760313324,formattedLastUpdatedAt:"Oct 12, 2025",frontMatter:{title:"API Hub Migration Guide"},sidebar:"docs",previous:{title:"Slow responses when fetching pacts for verification",permalink:"/docs/troubleshooting/slow-response-when-fetching-pacts-for-verification"}},s={},u=[{value:"Frequently Asked Questions",id:"frequently-asked-questions",level:2},{value:"Authentication",id:"authentication",level:3},{value:"I was using a username and password",id:"i-was-using-a-username-and-password",level:4},{value:"I was logging in via my company\u2019s SSO (e.g. Azure AD or Okta)",id:"i-was-logging-in-via-my-companys-sso-eg-azure-ad-or-okta",level:4},{value:"I was using GitHub or Google login",id:"i-was-using-github-or-google-login",level:4},{value:"Previous behavior",id:"previous-behavior",level:5},{value:"New behavior",id:"new-behavior",level:5},{value:"Plan Details",id:"plan-details",level:2},{value:"Will I be paying more?",id:"will-i-be-paying-more",level:3},{value:"What features should I expect?",id:"what-features-should-i-expect",level:3},{value:"PactFlow Enterprise Customers",id:"pactflow-enterprise-customers",level:4},{value:"PactFlow eCommerce Customers",id:"pactflow-ecommerce-customers",level:4},{value:"Deprecated Features and Breaking Changes",id:"deprecated-features-and-breaking-changes",level:2},{value:"API and Terraform Client",id:"api-and-terraform-client",level:3},{value:"New Features",id:"new-features",level:2},{value:"New Login URL",id:"new-login-url",level:3},{value:"Website and Marketing Collateral",id:"website-and-marketing-collateral",level:3},{value:"User and Org Management",id:"user-and-org-management",level:2},{value:"API Hub Product Switching",id:"api-hub-product-switching",level:2}],g={toc:u},p="wrapper";
1function d(e){let{components:t,...i}=e;return(0,r.yg)(p,(0,n.A)({},g,i,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"This guide helps you transition from PactFlow standalone to your API Hub account."),(0,r.yg)("h2",{id:"frequently-asked-questions"},"Frequently Asked Questions"),(0,r.yg)("h3",{id:"authentication"},"Authentication"),(0,r.yg)("p",null,"All users must log in through ",(0,r.yg)("strong",{parentName:"p"},"SmartBear ID"),"."),(0,r.yg)("p",null,"After migration, you may see a ",(0,r.yg)("strong",{parentName:"p"},"Continue with SmartBear ID")," button, or you may be redirected directly to authenticate with SmartBear ID."),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},(0,r.yg)("strong",{parentName:"p"},"Note:")," All users must have a SmartBear ID to log in to SmartBear products.")),(0,r.yg)("p",null,"The sections below explain login changes in more detail."),(0,r.yg)("h4",{id:"i-was-using-a-username-and-password"},"I was using a username and password"),(0,r.yg)("p",null,"If you haven't already created a SmartBear ID:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Select ",(0,r.yg)("strong",{parentName:"li"},"Continue with SmartBear ID")," and register a new account."),(0,r.yg)("li",{parentName:"ul"},"Use the ",(0,r.yg)("strong",{parentName:"li"},"same email")," as your previous login."),(0,r.yg)("li",{parentName:"ul"},"You\u2019ll retain all existing permissions after login.")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"If you register after migration, it should still work as expected.")),(0,r.yg)("h4",{id:"i-was-logging-in-via-my-companys-sso-eg-azure-ad-or-okta"},"I was logging in via my company\u2019s SSO (e.g. Azure AD or Okta)"),(0,r.yg)("p",null,"After migration:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You may see a ",(0,r.yg)("strong",{parentName:"li"},"Continue with SmartBear ID")," button."),(0,r.yg)("li",{parentName:"ul"},"When clicked, or if skipped, you'll be automatically redirected to your SSO provider.")),(0,r.yg)("h4",{id:"i-was-using-github-or-google-login"},"I was using GitHub or Google login"),(0,r.yg)("p",null,"GitHub and Google login is still supported, but the behavior has changed."),(0,r.yg)("h5",{id:"previous-behavior"},"Previous behavior"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Available only to paid customers (Team and Enterprise)."),(0,r.yg)("li",{parentName:"ul"},"Domain (Google) and organization (GitHub) restrictions were supported."),(0,r.yg)("li",{parentName:"ul"},"Users were auto-provisioned without explicit invites.")),(0,r.yg)("h5",{id:"new-behavior"},"New behavior"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Available to ",(0,r.yg)("strong",{parentName:"li"},"all plans"),"."),(0,r.yg)("li",{parentName:"ul"},"A new provider, ",(0,r.yg)("strong",{parentName:"li"},"Microsoft"),", will be supported."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Users must be manually invited"),". The email must match exactly."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Domain/org restrictions are no longer supported")," (feature deprecated).")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Existing users are not affected\u2014they do not require re-inviting.")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"plan-details"},"Plan Details"),(0,r.yg)("h3",{id:"will-i-be-paying-more"},"Will I be paying more?"),(0,r.yg)("p",null,"No. You will be migrated to an API Hub plan at ",(0,r.yg)("strong",{parentName:"p"},"the same price")," you currently pay, with additional features included."),(0,r.yg)("h3",{id:"what-features-should-i-expect"},"What features should I expect?"),(0,r.yg)("h4",{id:"pactflow-enterprise-customers"},"PactFlow Enterprise Customers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Migrated to ",(0,r.yg)("strong",{parentName:"li"},"API Hub for Contract Testing (Enterprise)")," plan."),(0,r.yg)("li",{parentName:"ul"},"Receive ",(0,r.yg)("strong",{parentName:"li"},"Team-level")," entitlements for Design, Test, Explore, and Portal features.")),(0,r.yg)("h4",{id:"pactflow-ecommerce-customers"},"PactFlow eCommerce Customers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Migrated to ",(0,r.yg)("strong",{parentName:"li"},"API Hub for Contract Testing (Team)")," plan."),(0,r.yg)("li",{parentName:"ul"},"Receive ",(0,r.yg)("strong",{parentName:"li"},"Individual-level")," entitlements for the other API Hub features.")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"deprecated-features-and-breaking-changes"},"Deprecated Features and Breaking Changes"),(0,r.yg)("h3",{id:"api-and-terraform-client"},"API and Terraform Client"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Updates to Google/GitHub login settings will no longer take effect."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"disable user")," has been deprecated. The ",(0,r.yg)("inlineCode",{parentName:"li"},"active")," field is ignored, but Terraform usage remains compatible."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"Invite User API")," is not supported for API Hub accounts.")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"new-features"},"New Features"),(0,r.yg)("h3",{id:"new-login-url"},"New Login URL"),(0,r.yg)("p",null,"You can now log in using:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"https://app.pactflow.io\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This new URL is a central entry point for all users."),(0,r.yg)("li",{parentName:"ul"},"After login, users are either:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},"Directed to their default tenant, or"),(0,r.yg)("li",{parentName:"ul"}
1,"Presented with a list of organisations they belong to.")))),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Your existing tenant-specific URL (for example, ",(0,r.yg)("inlineCode",{parentName:"p"},"xyz.pactflow.io"),") will continue to work.")),(0,r.yg)("h3",{id:"website-and-marketing-collateral"},"Website and Marketing Collateral"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Update all links to use the new URL above."),(0,r.yg)("li",{parentName:"ul"},"The phrase \u201cPactFlow Contract Testing Platform\u201d can be removed from external collateral."),(0,r.yg)("li",{parentName:"ul"},"A ",(0,r.yg)("strong",{parentName:"li"},"Login")," button can be added to your homepage.")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"user-and-org-management"},"User and Org Management"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Managing users is no longer done within the PactFlow UI."),(0,r.yg)("li",{parentName:"ul"},"All user management is now performed in the ",(0,r.yg)("a",{parentName:"li",href:"https://support.smartbear.com/api-hub/docs/en/api-hub-administration-management/adding-and-managing-users.html#adding-and-managing-users"},"SmartBear Admin Portal"),".")),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"SmartBear Admin",src:a(20661).A,width:"652",height:"466"})),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"api-hub-product-switching"},"API Hub Product Switching"),(0,r.yg)("p",null,"Some UI updates are included as part of the transition:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"New ",(0,r.yg)("strong",{parentName:"li"},"product switcher")," experience."),(0,r.yg)("li",{parentName:"ul"},"Updated branding and navigation reflecting ",(0,r.yg)("strong",{parentName:"li"},"API Hub")," instead of PactFlow.")),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"Product Switcher",src:a(59983).A,width:"663",height:"869"})))}d.isMDXComponent=!0},59983:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/migration-product-switcher-816e8b97b860dc36b4f3262343dc0e1d.png"},20661:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/migration-smartbear-admin-fc3791f018341cd585cfa07eb07fef11.png"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.