Meta tags:
description= OpenAPI breaking change detection CLI API contract testing prevent API breaking changes in CI/CD - specshield26/specshield-cli;
Headings (most frequently used words):
the, bdct, consumer, provider, spec, specshield, contract, to, step, publish, cli, har, your, ci, navigation, it, vs, run, all, options, best, for, uh, oh, code, pull, saved, searches, testing, from, turn, real, into, verify, does, live, actually, github, use, and, files, history, breaking, in, local, compare, comparison, checks, file, gate, this, before, init, license, footer, json, compatibility, deploy, contracts, service, load, what, on, search, repositories, users, issues, requests, provide, feedback, specshield26, commands, bi, directional, capture, traffic, match, its, cd, actions, menu, filter, results, more, quickly, folders, latest, commit, repository, contents, never, ship, change, api, consumers, problem, solution, see, action, quick, start, world, story, cases, cloud, remote, share, app, pr, record, operational, concerns, read, going, why, is, most, valuable, piece, of, alternatives, pricing, first, setup, wizard, login, authentication, config, exit, codes, support, about, releases, packages, contributors, languages, how, works, openapi, subset, or, pact, can, matrix, list, specs, verifications, full, workflow, output, mental, model, 1a, chrome, firefox, edge, devtools, zero, frontend, 1b, playwright, teams, with, ui, tests, 1c, cypress, 1d, mitmproxy, backend, 1e, postman, insomnia, bruno, 1f, k6, test, bonus, recording, while, engine, scrubbing, auth, tokens, cookies, pii, multi, host, filtering, talks, several, backends, keeping, fresh, common, pitfalls, safe, by, default, path, parameter, resolution, validator, per, response, request, catch, changes, merge, push, nightly, production, conformance, example, yml, non, interactive, scriptable, mode, flags, topics, resources, stars, watchers, forks,
Text of the page (most frequently used words):
the (200), #specshield (127), provider (98), #consumer (94), bdct (87), har (79), contract (72), yaml (72), api (63), your (62), openapi (60), spec (60), and (55), service (53), json (50), from (48), run (46), for (42), name (40), github (39), env (38), version (37), deploy (37), with (37), payment (36), can (34), breaking (34), path (34), publish (34), acme (33), base (32), every (32), compare (32), org (29), url (28), checkout (28), you (27), code (27), file (27), verify (26), pact (25), key (25), format (24), capture (24), that (23), cli (23), staging (23), this (21), all (21), production (21), test (21), one (20), traffic (20), list (19), fail (19), error (18), changes (18), config (18), tests (18), status (17), change (17), required (17), step (17), get (17), store (17), testing (16), out (16), https (16), share (15), output (15), history (15), compatibility (15), only (15), payments (15), pass (14), yml (14), contracts (14), actions (14), team (14), gate (14), install (14), token (13), default (13), never (13), target (13), use (13), specshield_api_key (13), type (13), per (12), its (12), app (12), uses (12), what (12), conformance (12), com (12), field (12), playwright (12), not (11), into (11), request (11), remote (11), security (10), free (10), account (10), exit (10), consumers (10), flags (10), options (10), true (10), are (10), local (10), any (10), when (10), post (10), mitmproxy (10), cypress (10), compatible (10), comparison (10), 2026 (9), diff (9), users (9), view (9), npm (9), support (9), hosted (9), commands (9), keep (9), login (9), dashboard (9), enterprise (9), checks (9), dsl (9), before (9), response (9), string (9), see (9), same (9), time (8), page (8), published (8), open (8), branch (8), stored (8), flag (8), running (8), matches (8), project (8), init (8), they (8), command (8), endpoint (8), already (8), vars (8), paymentid (8), actually (8), browser (8), entries (8), integration (8), record (8), reload (7), license (7), detection (7), header (7), include (7), matrix (7), subcommand (7), check (7), specs (7), safe (7), number (7), main (7), environment (7), pay (7), write (7), against (7), works (7), workflow (7), once (7), broker (7), secrets (7), schema (7), 200 (7), engine (7), just (7), recorder (7), publishes (7), create (6), probes (6), repeatable (6), timeout (6), params (6), non (6), providers (6), ver (6), override (6), server (6), subset (6), failonbreaking (6), set (6), files (6), var (6), two (6), export (6), also (6), skip (6), kind (6), without (6), must (6), workflows (6), package (6), email (6), staging_token (6), node (6), pull (6), catch (6), via (6), amount (6), does (6), have (6), context (6), right (6), host (6), endpoints (6), full (6), saved (6), action (5), navigation (5), deployable (5), codes (5), title (5), read (5), turn (5), link (5), info (5), ignore (5), save (5), result (5), defaults (5), each (5), paths (5), match (5), generate (5), own (5), first (5), both (5), why (5), fields (5), example (5), git (5), public (5), partial (5), authorization (5), runs (5), sha (5), merge (5), examples (5), orders (5), teams (5), backend (5), npx (5), produces (5), load (5), click (5), content (5), tab (5), incompatible (5), issues (5), search (5), community (4), was (4), while (4), readme (4), devtools (4), missing (4), more (4), mutating (4), filters (4), filter (4), machine (4), readable (4), purpose (4), description (4), expires (4), option (4), mode (4), github_sha (4), delete (4), removed (4), values (4), names (4), need (4), customer (4), plan (4), sign (4), commit (4), talks (4), everything (4), interactive (4), optional (4), writes (4), specshield26 (4), asks (4), signed (4), detects (4), wizard (4), setup (4), registry (4), latest (4), specshield_org (4), uuid (4), date (4), object (4), 123 (4), them (4), userid (4), methods (4), live (4), trust (4), existing (4), their (4), close (4), recordhar (4), prefix (4), captured (4), scrub (4), zero (4), session (4), real (4), orderid (4), recording (4), then (4), http (4), another (4), start (4), exercised (4), new (4), platform (4), mcp (4), cookies (3), docs (3), there (3), loading (3), please (3), report (3), repository (3), stars (3), mit (3), resources (3), topics (3), admin (3), runtime (3), self (3), recorded (3), verification (3), across (3), days (3), comparisons (3), warning (3), severity (3), commentonpr (3), specpath (3), hand (3), root (3), directory (3), always (3), require (3), resolution (3), secret (3), written (3), starter (3), stdout (3), auto (3), toml (3), repo (3), cloud (3), advanced (3), rbac (3), audit (3), slack (3), pricing (3), oss (3), paid (3), requires (3), directional (3), bearer (3), steps (3), ubuntu (3), jobs (3), branches (3), exact (3), 4xx (3), documented (3), integer (3), automatically (3), like (3), parameter (3), off (3), but (3), most (3), source (3), accurate (3), loop (3), body (3), would (3), break (3), language (3), sdk (3), single (3), entry (3), want (3), fix (3), ops (3), inventory (3), calls (3), scrubbed (3), input (3), tool (3), quick (3), bodies (3), reference (3), html (3), return (3), postman (3), add (3), 8080 (3), available (3), best (3), generator (3), safari (3), menu (3), frontend (3), mobile (3), partner (3), application (3), 482 (3), user (3), last (3), changed (3), cases (3), incident (3), services (3), changelog (3), insights (3), requests (3), settings (3), window (3), refresh (3), documentation (3), feedback (3), grade (3), features (3), copilot (3), solutions (3), explore (3), manage (2), footer (2), releases (2), fork (2), governance (2), swagger (2), microservices (2), prevent (2), about (2), stop (2), star (2), issue (2), software (2), private (2), limited (2), failed (2), method (2), verbs (2), size (2), overrides (2), organization (2), common (2), manually (2), make (2), limit (2), specific (2), collapse (2), relative (2), used (2), false (2), schemaversion (2), invocation (2), reads (2), entirely (2), nothing (2), auth (2), built (2), order (2), ss_your_token_here (2), copy (2), seconds (2), authentication (2), fmt (2), print (2), come (2), resolved (2), optionally (2), using (2), whether (2), mod (2), pom (2), xml (2), pyproject (2), under (2), started (2), saml (2), sso (2), scim (2), prem (2), log (2), workspace (2), priority (2), included (2), dredd (2), native (2), ingest (2), gating (2), pactflow (2), alternatives (2), push (2), tmp (2), actual (2), coverage (2), null (2), parameters (2), declare (2), repeat (2), reason (2), parsing (2), resolve (2), side (2), health (2), thingid (2), data (2), opt (2), things (2), says (2), sometimes (2), returns (2), numeric (2), usually (2), validating (2), derived (2), tax (2), deployed (2), other (2), instrument (2), piece (2), cert (2), above (2), import (2), tls (2), explicitly (2), end (2), await (2), chromium (2), didn (2), templated (2), segment (2), literal (2), multiple (2), hosts (2), doesn (2), identical (2), pattern (2), circleci (2), syntax (2), service_name (2), whole (2), keeping (2), different (2), multi (2), backends (2), emits (2), types (2), sanitizer (2), patterns (2), headers (2), cookie (2), contain (2), pii (2), operational (2), concerns (2), blocked (2), git_sha (2), sample (2), alongside (2), shapes (2), samples (2), seen (2), passes (2), images (2), schemas (2), will (2), omitted (2), wrote (2), expected (2), regardless (2), which (2), runner (2), either (2), insomnia (2), bruno (2), jvm (2), environments (2), hardump (2), brew (2), mitmdump (2), https_proxy (2), localhost (2), done (2), pointing (2), proxy (2), point (2), through (2), e2e (2), exports (2), module (2), neuralegion (2), const (2), call (2), paste (2), during (2), network (2), note (2), clear (2), chrome (2), firefox (2), edge (2), jump (2), how (2), agnostic (2), between (2), something (2), feature (2), work (2), verifications (2), properties (2), currency (2), verifies (2), comment (2), gets (2), links (2), billing (2), useful (2), drift (2), over (2), cross (2), notifications (2), track (2), expect (2), pipeline (2), broken (2), build (2), 2am (2), paymentstatus (2), too (2), blocks (2), breaks (2), solution (2), review (2), find (2), apis (2), problem (2), agent (2), agents (2), ship (2), lock (2), npmignore (2), gitignore (2), src (2), scripts (2), fixtures (2), demo (2), bin (2), commits (2), message (2), quality (2), projects (2), appearance (2), cancel (2), searches (2), repositories (2), business (2), developer (2), devops (2), perform, personal, information, contact, privacy, terms, inc, 100, javascript, languages, contributors, packages, forks, watching, watchers, activity, finding, breakage, found, clean, meaning, accepts, these, pairs, trigger, pair, expire, after, reportid, level, allow, informational, tag, 10000, enabled, substring, parent, win, locally, uploaded, don, were, newer, reserved, concept, unifies, subcommands, variable, recommended, logged, successfully, authenticate, ss_, keys, google, committed, operations, overwrite, confirmation, exists, force, detect, proposed, prompts, scriptable, subdirectory, present, validates, stores, autocompletes, suggests, otherwise, master, cargo, looks, credit, card, sales, dedicated, onboarding, sla, talk, enforced, trail, alerts, annual, web, day, forever, price, tier, readyapi, microcks, specmatic, oasdiff, smartbear, workflow_dispatch, daily, utc, cron, schedule, nightly, show, origin, fetch, depth, pull_request, wildcard, undocumented, properly, allows, oas, isms, handled, nullable, outside, enum, enums, plus, ajv, formats, array, boolean, validator, neither, resolves, skipped, param, wins, templates, 8000, extra, send, kvlist, probe, put, patch, effects, ref, least, unconfigured, unresolved, head, effect, catches, contains, partially_refunded, pending, refunded, truth, closes, firing, active, style, removes, converts, turns, folder, merges, measurable, enforcement, product, market, adopt, should, doing, aren, valuable, jks, trusted, rejects, newcontext, launch, empty, segments, differ, stays, looked, got, succeeds, document, drop, cause, symptom, pitfalls, gitlab, jenkins, injection, provider_name, provider_base_url, mvnw, whatever, typical, fresh, doubles, filtering, several, carries, words, ssn, creditcard, supports, redaction, allowlists, etc, heavier, del, select, ascii_downcase, deps, raw, publishing, scrubbing, tokens, going, section, promoting, dropped, ends, 404, documents, handles, happy, uuids, rfc, 3339, times, addresses, three, slightly, emitted, stay, become, widens, conflict, falls, back, some, merger, merging, becomes, preceding, noun, generic, resulting, likely, accountid, abc, templating, binary, inferred, appear, comma, separated, keeps, matching, critical, below, summary, means, survived, exactly, total, produced, metrics, script, bonus, collection, separate, many, cacerts, curl_ca_bundle, requests_ca_bundle, node_extra_ca_certs, listen, port, http_proxy, ctrl, disk, terminal, tell, dump, macos, pip, apt, lands, outdir, savehar, aftereach, beforeeach, setupnodeevents, flushed, runnable, lives, clone, jsonplaceholder, sandbox, toolchain, made, noise, onlyjson, usual, embed, __dirname, baseurl, testdir, develop, entire, byte, anywhere, button, flows, cmd, f12, reading, recipes, follow, exploratory, caller, plugin, spa, driven, effort, pick, almost, yourself, happens, saving, inference, mental, model, drifts, moment, forget, reflects, difference, proved, called, learn, universal, framework, makes, normal, incompatiblecount, compatiblecount, consumerversion, consumername, deployment, update, release, unknown, verified, checked, response_field_missing, expects, type_mismatch, pacts, supported, 201, responses, requestbody, describing, stamped, correlate, came, compares, presence, sides, relies, satisfied, gates, overhead, configure, configurable, sticky, highlighted, visible, choose, repos, touches, automatic, 256, bit, random, unguessable, enumeration, revoke, ready, _ru8ovubxy3r9zhosylesaulphcqbyh5jtpyldsmu88, 16t12, 56z, usage, jira, ticket, anyone, recent, 481, updated, 480, shows, drill, down, tracking, members, machines, straight, saves, includes, still, isn, historyid, sends, heavy, basic, needed, text, leaves, infrastructure, class, urls, timeline, human, writing, line, sure, paper, know, whom, deliver, surprises, safety, stops, validation, returned, affected, missing_field, created, ran, mismatch, caught, immediately, reached, triggered, merged, renamed, wasn, notified, world, story, welcome, banner, skips, silence, workstation, specshield_no_banner, tf_build, travis, jenkins_url, gitlab_ci, buildkite, github_actions, quiet, docker, seeds, subsequent, again, drifting, detected, modifications, additions, surprise, 3am, anything, proves, satisfies, those, expectations, deploying, think, unit, manual, late, enforces, angry, integrations, logs, rename, crashes, 000, silently, feel, brings, claude, cursor, clients, ask, inside, job, points, coding, uploads, prove, block, four, reach, known, bidirectional, overview, contents, items, folders, tags, additional, notification, dismiss, alert, switched, accounts, resetting, focus, qualifiers, our, query, results, quickly, submit, address, contacted, take, very, seriously, provide, tips, premium, ons, powered, collections, trending, archive, program, accelerator, maintainer, lab, programs, fund, developers, sponsors, partners, center, forum, skills, ebooks, reports, events, webinars, stories, development, topic, industries, government, manufacturing, financial, healthcare, industry, devsecops, modernization, case, nonprofits, startups, small, medium, enterprises, company, marketplace, blog, leaks, protection, secure, vulnerabilities, instant, dev, codespaces, automate, integrate, external, tools, direct, better, creation, toggle,
Text of the page (random words):
gate every deploy with can i deploy contract compatibility testing is also known as bidirectional contract testing it s the one cli that does four things to keep your api safe diff two openapi specs and fail ci on breaking changes contract compatibility testing with can i deploy block a deploy that would break a consumer bdct capture from har turn recorded traffic into an accurate consumer contract no pact dsl bdct verify provider prove the running provider actually matches its openapi spec openapi diff contract compatibility checks har consumer contract spec vs production conformance in one cli no broker no pact dsl language agnostic works in 30 seconds local mode never uploads your specs using an ai coding agent the specshield mcp server brings the same can i deploy deploy gate into claude cursor and other mcp clients ask is it safe to ship this api change to my consumers right inside your agent same job two entry points this cli for ci cd the mcp server for agents the problem apis break silently your users feel it first a backend rename of status paymentstatus the mobile app crashes for 10 000 users an endpoint gets removed the frontend breaks with no error in your logs a required field changes partner integrations fail at 2am you find out from an angry customer not from ci manual review doesn t catch it integration tests run too late you need a contract between your services and something that enforces it on every pr and every deploy the solution think of specshield as unit tests for your api contracts consumers declare or record what they expect from the provider the provider proves it satisfies those expectations before deploying the pipeline blocks the deploy if anything breaks consumer publishes contract provider verifies it ci passes or blocks no runtime surprise no production incident no 3am page see it in action catch a breaking spec change in ci specshield compare base yaml target yaml fail on breaking breaking changes detected 1 delete users endpoint removed 2 post payments amount changed from optional to required 3 get orders id status type changed string object breaking changes 3 modifications 1 additions 2 ci result failed exit code 1 catch the running provider drifting from its own spec specshield bdct verify provider spec api openapi yaml base url https staging payments acme com provider conformance spec vs https staging payments acme com pass get health 200 fail get payments paymentid 200 amount must be number pass get orders 200 2 pass 1 fail 0 error 0 skip 3 probes turn recorded test traffic into an accurate consumer contract no pact dsl specshield bdct capture from har in checkout tests har base url https api acme com out consumer yaml wrote consumer yaml 2 endpoints 3 ops from 17 24 entries that output just saved you a production incident quick start no account no login no config file for compare just run it npm install g specshield specshield compare base yaml target yaml fail on breaking works with any openapi 3 x yaml or json for bdct run the wizard once and never re type the same flags again specshield init it auto detects your spec service name from package json pyproject toml pom xml go mod git branch and environment writes specshield yml and optionally seeds a github actions workflow every subsequent specshield bdct invocation reads this file so your ci commands collapse to specshield bdct publish provider version github_sha specshield bdct can i deploy version github_sha quiet install for ci docker the post install welcome banner auto skips in ci ci github_actions buildkite circleci gitlab_ci jenkins_url travis tf_build to silence it on a workstation too export specshield_no_banner 1 a real world story the payment service team merged a change that renamed status to paymentstatus the checkout ui team wasn t notified without specshield this would have reached staging broken checkout for every user and triggered an incident at 2am with specshield the provider s ci published the new spec via specshield bdct publish provider the compatibility engine ran against checkout ui s published contract and the mismatch was caught immediately missing_field at status expected created actual null can i deploy returned exit code 1 the broken build never deployed zero users affected use cases pull request validation catch breaking changes before merge with specshield compare ci cd gating exit code 1 stops the pipeline automatically microservices contract safety consumers publish what they expect providers verify they deliver it no cross team surprises api governance track api drift over time across your platform know what changed when by whom provider conformance new make sure your running service actually matches its published openapi spec not just on paper pact free consumer contracts new record real traffic with capture from har and get an openapi consumer contract without writing a single line of pact dsl local vs cloud feature local free team enterprise compare two spec files breaking change detection json human output fail ci on breaking change bdct capture from har bdct verify provider specshield history compare timeline specshield share public report urls hosted dashboard github app pr checks bdct consumer registry can i deploy gate bdct compatibility matrix team workspace audit log rbac slack notifications saml sso scim on prem the local only commands are first class compare bdct capture from har and bdct verify provider all run entirely in your ci your spec text never leaves your infrastructure commands local compare no account needed basic compare specshield compare base yaml target yaml fail ci on breaking changes specshield compare base yaml target yaml fail on breaking json output specshield compare base yaml target yaml json save to file specshield compare base yaml target yaml output result json ignore a specific change specshield compare base yaml target yaml ignore delete admin removed fail on breaking remote compare sends your specs to specshield s hosted diff engine useful for keeping the heavy comparison off your ci runner and for cross validating against the exact engine the dashboard uses requires a free account specshield compare base yaml target yaml remote specshield compare base yaml target yaml remote fail on breaking specshield compare base yaml target yaml remote json output result json history note with an api key set run specshield login or pass api key specshield_api_key remote saves each comparison to your history and the response includes a historyid you can hand to specshield share without a key the diff still runs it just isn t saved comparison history every comparison you run with remote and every one from the dashboard is saved to your account useful for tracking api drift over time across team members and machines list them straight from the cli specshield history last 20 comparisons specshield history limit 50 specshield history json the dashboard at specshield io account history shows the same data with per comparison drill down example output your recent comparisons 482 3 breaking 2026 05 17 14 30 payment v1 yaml payment v2 yaml 481 0 breaking 2026 05 17 11 02 user api yaml user api updated yaml 480 7 breaking 2026 05 16 18 55 billing v3 yaml billing v4 yaml share a comparison generate a public r token link for any comparison paste it into slack a github pr comment or a jira ticket and anyone can view the diff without a specshield account you can also create links from the dashboard open a comparison at specshield io account history share usage share an existing report by id from specshield history specshield share 482 compare two specs and share the result in one step specshield share base yaml target yaml time limited link expires in 30 days specshield share 482 expires 30 share link ready https specshield io r _ru8ovubxy3r9zhosylesaulphcqbyh5jtpyldsmu88 expires 2026 06 16t12 34 56z links use a 256 bit random token unguessable by enumeration revoke any time from the dashboard github app pr checks automatic api contract checks on every pull request no workflow yaml required install once at dashboard github integration choose your repos done every pr that touches the openapi spec gets a github check run pass fail visible on the pr a sticky pr comment with the full diff breaking changes highlighted configurable failonbreaking per repository configure per repo via specshield yml github specpath api openapi yaml failonbreaking true commentonpr true bi directional contract testing bdct compatibility without pact s broker overhead or dsl both sides publish what they have provider publishes its openapi spec consumer publishes either an openapi subset or a pact json file and specshield s engine verifies that every endpoint field the consumer relies on is satisfied by the provider can i deploy then gates the deploy how bdct works consumer publishes a contract openapi subset or pact json provider publishes its full openapi spec specshield compares endpoint presence request schemas response fields status codes types can i deploy returns 0 only when all consumers are compatible publish a provider spec specshield bdct publish provider org acme store provider payment service version v2 1 0 spec api openapi yaml env production branch main branch is optional stamped on the published spec so you can correlate a spec version with the git branch it came from in bdct list providers publish a consumer contract openapi subset or pact json the consumer contract is an openapi subset describing only the endpoints the consumer uses consumer contract yaml only the subset checkout ui uses openapi 3 0 0 info title checkout ui payment service contract version 1 0 0 paths payments post requestbody content application json schema type object required orderid amount currency properties orderid type string amount type number currency type string responses 201 content application json schema type object properties paymentid type string status type string specshield bdct publish consumer org acme store consumer checkout ui provider payment service version 2 0 0 contract contracts checkout ui payment yaml format openapi pact json contracts are also supported pass format pact and point contract at a pact file the same compatibility engine runs against your provider s openapi spec specshield bdct publish consumer org acme store consumer checkout ui provider payment service version 2 0 0 contract pacts checkout ui payment service json format pact format defaults to openapi if omitted verify compatibility specshield bdct verify org acme store consumer checkout ui consumer version 2 0 0 provider payment service provider version v2 1 0 env production incompatible endpoints checked 2 compatible 1 incompatible 1 issues post payments error response_field_missing field status consumer expects it provider spec does not return it get payments id warning type_mismatch field amount consumer integer provider string can i deploy specshield bdct can i deploy org acme store service payment service version v2 1 0 env production pass payment service v2 1 0 is deployable in production consumer version status verified at checkout ui 2 0 0 compatible 2026 05 13 14 32 mobile app 1 5 0 compatible 2026 05 13 14 32 partner sdk 3 2 1 compatible 2026 05 13 14 32 exit codes 0 deployable 1 blocked 2 error compatibility matrix specshield bdct matrix org acme store env production consumer provider payment service order service checkout ui compatible compatible mobile app incompatible compatible partner sdk compatible unknown list provider specs consumer contracts verifications specshield bdct list providers org acme store specshield bdct list providers org acme store provider payment service specshield bdct list consumers org acme store specshield bdct list consumers org acme store consumer checkout ui specshield bdct list org acme store provider payment service env production full bdct workflow 1 provider publishes spec on every release specshield bdct publish provider org acme store provider payment service version v2 1 0 spec api openapi yaml 2 each consumer publishes their contract update on contract change specshield bdct publish consumer org acme store consumer checkout ui provider payment service version 2 0 0 contract contracts checkout ui yaml 3 gate the provider deployment specshield bdct can i deploy org acme store service payment service version v2 1 0 env production bdct json output all bdct commands support json for ci parsing specshield bdct can i deploy org acme store service payment service version v2 1 0 json deployable false service payment service version v2 1 0 environment production reason payment service v2 1 0 is incompatible with checkout ui 2 0 0 verifications consumername checkout ui consumerversion 2 0 0 status incompatible compatiblecount 1 incompatiblecount 1 bdct capture from har turn real traffic into a consumer contract this is the feature that makes bdct actually work for normal teams pact requires every consumer team to learn a dsl instrument their tests and run a broker specshield asks for something they already have a recording of an http test run in the universal har format that every browser every test framework and every recording proxy already produces a hand written consumer contract drifts the moment you forget a field a har derived contract reflects what your code actually called every time you re record it s the difference between we documented the integration and we proved the integration the 3 step mental model 1 record 2 capture 3 gate your existing test run specshield bdct publish consumer traffic har capture from har verify browser playwright consumer contract yaml can i deploy cypress mitmproxy postman k6 language agnostic every provider cli does the openapi pr re checks inference every consumer step 1 already happens in your team you re just saving the file step 2 is one cli command step 3 is the bdct registry you publish to step 1 record a har file pick the recorder that matches how the consumer is exercised in your project you almost never have to write recorder code yourself recorder use when the consumer is effort browser devtools chrome firefox edge safari a frontend spa a swagger ui or any browser driven app zero code playwright with recordhar exercised by playwright ui integration tests one config field cypress cypress har generator exercised by cypress ui tests one plugin mitmproxy a backend service to service caller in a test env one brew install no consumer changes postman insomnia bruno manually exercised during exploratory testing right click export k6 load tests already running k6 against the provider one out har flag recipes follow keep reading for the exact commands per tool then jump to step 2 the capture command which is identical regardless of recorder 1a chrome firefox edge devtools zero code best for frontend open the page that calls your api in the browser open devtools f12 cmd opt i network tab click the button to clear then reload the page and click ...
|