specshield 3.3.4 → 3.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +30 -7
- package/package.json +1 -1
- package/src/commands/init.js +1 -1
- package/src/core/outputFormatter.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# SpecShield CLI changelog
|
|
2
2
|
|
|
3
|
+
## 3.3.6 — 2026-07-28 — Docs & platform positioning
|
|
4
|
+
|
|
5
|
+
Documentation-only release — **no CLI behavior change**; existing CI keeps working.
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **README reframed around the SpecShield™ platform.** New "One platform, five ways
|
|
10
|
+
to run it" section covering the GitHub App, GitHub Action, this CLI, the
|
|
11
|
+
IntelliJ/JetBrains plugin, and the MCP server — plus the hosted dashboard.
|
|
12
|
+
- **API governance surfaced as a first-class capability** (OWASP + design-rule
|
|
13
|
+
linting, standard rule packs, waivers, SARIF/JUnit/HTML reports) — available via
|
|
14
|
+
the IntelliJ plugin, GitHub Action, MCP server, and dashboard.
|
|
15
|
+
- Corrected the "API governance" use case that previously described drift-tracking;
|
|
16
|
+
split into "API drift tracking" and proper "API governance & linting".
|
|
17
|
+
- Noted that Optic was archived (Jan 2026) and linked the full comparison at
|
|
18
|
+
`specshield.io/alternatives`.
|
|
19
|
+
- Applied the ™ mark to the SpecShield brand where appropriate.
|
|
20
|
+
|
|
3
21
|
## 3.3.0 — 2026-06-20 — Complex-spec hardening + "contract compatibility testing"
|
|
4
22
|
|
|
5
23
|
A minor release focused on the local diff engine's accuracy on advanced OpenAPI
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SpecShield CLI
|
|
1
|
+
# SpecShield™ CLI
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/specshield)
|
|
4
4
|
[](https://www.npmjs.com/package/specshield)
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
## Never ship a breaking change to your API consumers
|
|
42
42
|
|
|
43
|
-
**SpecShield is contract compatibility testing for APIs** — catch breaking changes before they reach your consumers, and gate every deploy with `can-i-deploy`. *(Contract compatibility testing is also known as bidirectional contract testing.)*
|
|
43
|
+
**SpecShield™ is contract compatibility testing for APIs** — catch breaking changes before they reach your consumers, and gate every deploy with `can-i-deploy`. *(Contract compatibility testing is also known as bidirectional contract testing.)*
|
|
44
44
|
|
|
45
45
|
It's the one CLI that does four things to keep your API safe:
|
|
46
46
|
|
|
@@ -55,7 +55,25 @@ OpenAPI diff + contract compatibility checks + HAR → consumer contract +
|
|
|
55
55
|
|
|
56
56
|
No broker. No Pact DSL. Language-agnostic. Works in 30 seconds. Local mode never uploads your specs.
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## One platform, five ways to run it
|
|
61
|
+
|
|
62
|
+
This CLI is one surface of the **SpecShield™ platform**. The same contract-compatibility and governance engine powers every entry point — they share one project file (`.specshield.yml`), one API key, and one set of audit events. Adopt the one that fits your stack today and grow into the others:
|
|
63
|
+
|
|
64
|
+
| Surface | Best for |
|
|
65
|
+
|---|---|
|
|
66
|
+
| **GitHub App** — [github.com/apps/specshield](https://github.com/apps/specshield) | Zero-config PR checks. Install once; every PR gets a check run and a diff comment. |
|
|
67
|
+
| **GitHub Action** — [`specshield26/bdct-action@v1`](https://github.com/marketplace/actions/specshield-bdct) | Pinned, reproducible BDCT + governance gate in any GitHub workflow. |
|
|
68
|
+
| **CLI** *(this package)* | Any CI — GitLab, Jenkins, CircleCI, Bitbucket, Drone — or your laptop. |
|
|
69
|
+
| **IntelliJ plugin** — [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/33137-specshield) | Inline spec findings, one-click auto-fixes, compare & explain — inside IntelliJ IDEA, WebStorm, PyCharm and more. |
|
|
70
|
+
| **MCP server** — [`specshield-mcp-server`](https://github.com/specshield26/specshield-mcp-server) | Give Claude, Cursor, and other AI agents the same deploy gate. |
|
|
71
|
+
|
|
72
|
+
Plus a hosted **dashboard** at [specshield.io](https://specshield.io) — compatibility matrix, consumer registry, append-only audit log, and **API governance** scorecards (OWASP + design-rule linting, standard rule packs, waivers, SARIF/JUnit/HTML reports).
|
|
73
|
+
|
|
74
|
+
> 🤖 **AI agents:** the MCP server answers *"is it safe to ship this API change to my consumers?"* right inside your agent — analyze-only, it never touches your code. Same job, two entry points: this CLI for CI/CD, the MCP server for agents.
|
|
75
|
+
|
|
76
|
+
> See how the platform stacks up against Pactflow, Pact, Optic, oasdiff, Bump.sh, Stoplight, and API gateways (Apigee, Azure API Management) at **[specshield.io/alternatives](https://specshield.io/alternatives)**.
|
|
59
77
|
|
|
60
78
|
---
|
|
61
79
|
|
|
@@ -191,9 +209,10 @@ specshield bdct can-i-deploy --version $GITHUB_SHA
|
|
|
191
209
|
- **Pull-request validation** — catch breaking changes before merge with `specshield compare`.
|
|
192
210
|
- **CI/CD gating** — exit code `1` stops the pipeline automatically.
|
|
193
211
|
- **Microservices contract safety** — consumers publish what they expect, providers verify they deliver it, no cross-team surprises.
|
|
194
|
-
- **API
|
|
195
|
-
- **
|
|
196
|
-
- **
|
|
212
|
+
- **API drift tracking** — track how your specs change over time across the platform; know what changed, when, and by whom.
|
|
213
|
+
- **API governance & linting** — score every spec against OWASP + design rules, adopt standard rule packs or bring your own ruleset, and gate PRs on violations. Available through the [IntelliJ plugin](https://plugins.jetbrains.com/plugin/33137-specshield), the [GitHub Action](https://github.com/marketplace/actions/specshield-bdct), the [MCP server](https://github.com/specshield26/specshield-mcp-server), and the [dashboard](https://specshield.io). *(Not a `specshield` CLI command yet.)*
|
|
214
|
+
- **Provider conformance** — make sure your *running* service actually matches its published OpenAPI spec, not just on paper.
|
|
215
|
+
- **Pact-free consumer contracts** — record real traffic with `capture from-har` and get an OpenAPI consumer contract without writing a single line of Pact DSL.
|
|
197
216
|
|
|
198
217
|
---
|
|
199
218
|
|
|
@@ -1093,6 +1112,8 @@ jobs:
|
|
|
1093
1112
|
| CLI-first | ✅ | ❌ | ✅ | partial |
|
|
1094
1113
|
| Free tier | ✅ | ❌ | ✅ (OSS) | ✅ (OSS) |
|
|
1095
1114
|
|
|
1115
|
+
> **Note:** Optic — a popular OpenAPI-diff tool — was **archived in January 2026** and is no longer maintained; SpecShield is a drop-in replacement for its diff and CI checks. For the full, up-to-date comparison (including Bump.sh, Stoplight, and API gateways like Apigee and Azure API Management), see **[specshield.io/alternatives](https://specshield.io/alternatives)**.
|
|
1116
|
+
|
|
1096
1117
|
---
|
|
1097
1118
|
|
|
1098
1119
|
## Pricing
|
|
@@ -1395,7 +1416,9 @@ MIT © SpecShield Software Private Limited
|
|
|
1395
1416
|
|
|
1396
1417
|
<div align="center">
|
|
1397
1418
|
|
|
1398
|
-
**[
|
|
1419
|
+
**The SpecShield™ platform:** [Dashboard](https://specshield.io) · [GitHub App](https://github.com/apps/specshield) · [GitHub Action](https://github.com/marketplace/actions/specshield-bdct) · [IntelliJ Plugin](https://plugins.jetbrains.com/plugin/33137-specshield) · [MCP Server](https://github.com/specshield26/specshield-mcp-server)
|
|
1420
|
+
|
|
1421
|
+
**[⭐ Star on GitHub](https://github.com/specshield26/specshield-cli) · [📦 View on npm](https://www.npmjs.com/package/specshield) · [🚀 Create free account](https://specshield.io) · [⚖️ Compare](https://specshield.io/alternatives)**
|
|
1399
1422
|
|
|
1400
1423
|
*Stop finding out about API breakage from your users.*
|
|
1401
1424
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specshield",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.6",
|
|
4
4
|
"description": "Contract compatibility testing for APIs — catch breaking OpenAPI changes before they reach your consumers, with can-i-deploy deploy gating and GitHub PR checks. (a.k.a. bidirectional contract testing.)",
|
|
5
5
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
package/src/commands/init.js
CHANGED
|
@@ -162,7 +162,7 @@ function buildConfig(answers, detected) {
|
|
|
162
162
|
// ─── Interactive flow ──────────────────────────────────────────────────────
|
|
163
163
|
|
|
164
164
|
async function interactiveFlow(detected, opts) {
|
|
165
|
-
fmtSection('SpecShield CLI · setup wizard');
|
|
165
|
+
fmtSection('SpecShield™ CLI · setup wizard');
|
|
166
166
|
|
|
167
167
|
if (detected.git.remote) ok(`Detected git repo: ${chalk.white(detected.git.remote)}`);
|
|
168
168
|
if (detected.spec) ok(`Found OpenAPI spec: ${chalk.white(detected.spec)}`);
|
|
@@ -15,7 +15,7 @@ function formatHuman(result) {
|
|
|
15
15
|
|
|
16
16
|
// Summary header
|
|
17
17
|
lines.push('');
|
|
18
|
-
lines.push(chalk.bold(' SpecShield Comparison Report'));
|
|
18
|
+
lines.push(chalk.bold(' SpecShield™ Comparison Report'));
|
|
19
19
|
lines.push(chalk.gray(' ─────────────────────────────────────────'));
|
|
20
20
|
lines.push(
|
|
21
21
|
` ${chalk.red.bold(`${breakingChanges.length} breaking`)} ` +
|