|
| 1 | +# Tool to compare API responses |
| 2 | + |
| 3 | +> Note: As of March 2025, this script is set up for comparing version-metadata between endpoints |
| 4 | +
|
| 5 | +This script is a utility for comparing API responses between two endpoints, typically the UDR API and Content API. It supports multiple API types and provides options for filtering, saving output, and customizing the comparison. |
| 6 | + |
| 7 | +## Options: |
| 8 | + |
| 9 | +-n, --new-api-url <url>: The base URL of the new API to compare. |
| 10 | +-o, --old-api-url <url>: The base URL of the old API to compare against. |
| 11 | +-v, --version <version>: The version of the product to compare. |
| 12 | +-p, --product <product>: The product name to compare. |
| 13 | +-a, --api <api>: The API type to compare. Options: content, nav-data, version-metadata, content-versions. Default: version-metadata. |
| 14 | +-r, --drop-keys <keys>: Comma-separated list of keys to exclude from the comparison. |
| 15 | +-s, --save-output: Save the comparison output to a file. Disabled by default. |
| 16 | + |
| 17 | +### Example |
| 18 | + |
| 19 | +To compare version metadata between APIs for a specific product: |
| 20 | + |
| 21 | +```bash |
| 22 | +npm run compare-api-responses -- -n localhost:8080 -o https://content.hashicorp.com -p terraform-docs-agents |
| 23 | +``` |
| 24 | + |
| 25 | +### Example output: |
| 26 | + |
| 27 | +```bash |
| 28 | +@@ -2,11 +2,4 @@ |
| 29 | + { |
| 30 | +- "created_at": "2025-03-18T19:47:18.641Z", |
| 31 | +- "display": "v1.21.0", |
| 32 | + "isLatest": true, |
| 33 | +- "pk": "terraform-docs-agents#version-metadata", |
| 34 | +- "product": "terraform-docs-agents", |
| 35 | +- "ref": "v1.21.0", |
| 36 | + "releaseStage": "stable", |
| 37 | +- "sha": "54ed38c9bafb5c437c294a6b7238e08915188332", |
| 38 | +- "sk": "version-metadata/v1.21.x", |
| 39 | + "version": "v1.21.x" |
| 40 | +@@ -14,11 +7,4 @@ |
| 41 | + { |
| 42 | +- "created_at": "2025-03-18T19:47:18.605Z", |
| 43 | +- "display": "v1.20.x", |
| 44 | + "isLatest": false, |
| 45 | +- "pk": "terraform-docs-agents#version-metadata", |
| 46 | +- "product": "terraform-docs-agents", |
| 47 | +- "ref": "v1.20.2", |
| 48 | + "releaseStage": "stable", |
| 49 | +- "sha": "3265ff727b24d97f94e2e272ab6ea77dad2418ea", |
| 50 | +- "sk": "version-metadata/v1.20.x", |
| 51 | + "version": "v1.20.x" |
| 52 | +@@ -26,11 +12,4 @@ |
| 53 | + { |
| 54 | +- "created_at": "2025-02-06T19:43:18.538Z", |
| 55 | +- "display": "v1.19.x", |
| 56 | + "isLatest": false, |
| 57 | +- "pk": "terraform-docs-agents#version-metadata", |
| 58 | +- "product": "terraform-docs-agents", |
| 59 | +- "ref": "v1.19.0", |
| 60 | + "releaseStage": "stable", |
| 61 | +- "sha": "9d02bf677d6dd085b9a65be4d01fad77fb432f18", |
| 62 | +- "sk": "version-metadata/v1.19.x", |
| 63 | + "version": "v1.19.x" |
| 64 | +@@ -38,11 +17,4 @@ |
| 65 | + { |
| 66 | +- "created_at": "2025-02-05T22:00:28.858Z", |
| 67 | +- "display": "v1.18.x", |
| 68 | + "isLatest": false, |
| 69 | +- "pk": "terraform-docs-agents#version-metadata", |
| 70 | +- "product": "terraform-docs-agents", |
| 71 | +- "ref": "v1.18.0", |
| 72 | + "releaseStage": "stable", |
| 73 | +- "sha": "4942ebb1cd931e7a6e0e2259054c1e8389a3a8e5", |
| 74 | +- "sk": "version-metadata/v1.18.x", |
| 75 | + "version": "v1.18.x" |
| 76 | +@@ -50,11 +22,4 @@ |
| 77 | + { |
| 78 | +- "created_at": "2025-01-29T21:12:08.164Z", |
| 79 | +- "display": "v1.17.x", |
| 80 | + "isLatest": false, |
| 81 | +- "pk": "terraform-docs-agents#version-metadata", |
| 82 | +- "product": "terraform-docs-agents", |
| 83 | +- "ref": "v1.17.6", |
| 84 | + "releaseStage": "stable", |
| 85 | +- "sha": "f0c5b93087310a9a7a12889502af1bfab1c993ad", |
| 86 | +- "sk": "version-metadata/v1.17.x", |
| 87 | + "version": "v1.17.x" |
| 88 | +@@ -62,11 +27,4 @@ |
| 89 | + { |
| 90 | +- "created_at": "2024-10-30T16:30:46.593Z", |
| 91 | +- "display": "v1.16.x", |
| 92 | + "isLatest": false, |
| 93 | +- "pk": "terraform-docs-agents#version-metadata", |
| 94 | +- "product": "terraform-docs-agents", |
| 95 | +- "ref": "v1.16.0", |
| 96 | + "releaseStage": "stable", |
| 97 | +- "sha": "dbb7940356646d601c99e9e8948248e9e33cf9c8", |
| 98 | +- "sk": "version-metadata/v1.16.x", |
| 99 | + "version": "v1.16.x" |
| 100 | +@@ -74,11 +32,4 @@ |
| 101 | + { |
| 102 | +- "created_at": "2024-10-02T22:12:01.626Z", |
| 103 | +- "display": "v1.15.x", |
| 104 | + "isLatest": false, |
| 105 | +- "pk": "terraform-docs-agents#version-metadata", |
| 106 | +- "product": "terraform-docs-agents", |
| 107 | +- "ref": "v1.15.5", |
| 108 | + "releaseStage": "stable", |
| 109 | +- "sha": "b769d6a97887ef4b80e3960c10696865c04b3484", |
| 110 | +- "sk": "version-metadata/v1.15.x", |
| 111 | + "version": "v1.15.x" |
| 112 | +@@ -86,11 +37,4 @@ |
| 113 | + { |
| 114 | +- "created_at": "2024-03-13T23:02:57.057Z", |
| 115 | +- "display": "v1.14.x", |
| 116 | + "isLatest": false, |
| 117 | +- "pk": "terraform-docs-agents#version-metadata", |
| 118 | +- "product": "terraform-docs-agents", |
| 119 | +- "ref": "v1.14.5", |
| 120 | + "releaseStage": "stable", |
| 121 | +- "sha": "b9eabad236ba4cc8054e3addd262b597654c44b1", |
| 122 | +- "sk": "version-metadata/v1.14.x", |
| 123 | + "version": "v1.14.x" |
| 124 | +@@ -98,11 +42,4 @@ |
| 125 | + { |
| 126 | +- "created_at": "2023-11-09T22:33:57.325Z", |
| 127 | +- "display": "v1.13.x", |
| 128 | + "isLatest": false, |
| 129 | +- "pk": "terraform-docs-agents#version-metadata", |
| 130 | +- "product": "terraform-docs-agents", |
| 131 | +- "ref": "v1.13.1", |
| 132 | + "releaseStage": "stable", |
| 133 | +- "sha": "7d5d48cae15b6b1bf840cabff0ce19dfe68204cf", |
| 134 | +- "sk": "version-metadata/v1.13.x", |
| 135 | + "version": "v1.13.x" |
| 136 | +@@ -110,11 +47,4 @@ |
| 137 | + { |
| 138 | +- "created_at": "2023-09-28T18:47:10.933Z", |
| 139 | +- "display": "v1.12.x", |
| 140 | + "isLatest": false, |
| 141 | +- "pk": "terraform-docs-agents#version-metadata", |
| 142 | +- "product": "terraform-docs-agents", |
| 143 | +- "ref": "v1.12.1", |
| 144 | + "releaseStage": "stable", |
| 145 | +- "sha": "0a742ad934ed7de22487fadcafde6c3363a134f5", |
| 146 | +- "sk": "version-metadata/v1.12.x", |
| 147 | + "version": "v1.12.x" |
| 148 | +@@ -122,11 +52,4 @@ |
| 149 | + { |
| 150 | +- "created_at": "2023-07-26T21:28:58.478Z", |
| 151 | +- "display": "v1.11.x", |
| 152 | + "isLatest": false, |
| 153 | +- "pk": "terraform-docs-agents#version-metadata", |
| 154 | +- "product": "terraform-docs-agents", |
| 155 | +- "ref": "v1.11.0", |
| 156 | + "releaseStage": "stable", |
| 157 | +- "sha": "9348221ded1edcce0b4e3d39a026262ea4bce439", |
| 158 | +- "sk": "version-metadata/v1.11.x", |
| 159 | + "version": "v1.11.x" |
| 160 | +@@ -134,11 +57,4 @@ |
| 161 | + { |
| 162 | +- "created_at": "2023-07-24T15:52:56.786Z", |
| 163 | +- "display": "v1.10.x", |
| 164 | + "isLatest": false, |
| 165 | +- "pk": "terraform-docs-agents#version-metadata", |
| 166 | +- "product": "terraform-docs-agents", |
| 167 | +- "ref": "v1.10.1", |
| 168 | + "releaseStage": "stable", |
| 169 | +- "sha": "ebb223ea6ed2d732805b1fa2ade3832f11f7097a", |
| 170 | +- "sk": "version-metadata/v1.10.x", |
| 171 | + "version": "v1.10.x" |
| 172 | +@@ -146,11 +62,4 @@ |
| 173 | + { |
| 174 | +- "created_at": "2023-06-09T18:05:22.217Z", |
| 175 | +- "display": "v1.9.x", |
| 176 | + "isLatest": false, |
| 177 | +- "pk": "terraform-docs-agents#version-metadata", |
| 178 | +- "product": "terraform-docs-agents", |
| 179 | +- "ref": "v1.9.0", |
| 180 | + "releaseStage": "stable", |
| 181 | +- "sha": "489f89391a5ac0c13fda07d149291c970d7e22ed", |
| 182 | +- "sk": "version-metadata/v1.9.x", |
| 183 | + "version": "v1.9.x" |
| 184 | +@@ -158,11 +67,4 @@ |
| 185 | + { |
| 186 | +- "created_at": "2023-05-04T19:28:15.890Z", |
| 187 | +- "display": "v1.8.x", |
| 188 | + "isLatest": false, |
| 189 | +- "pk": "terraform-docs-agents#version-metadata", |
| 190 | +- "product": "terraform-docs-agents", |
| 191 | +- "ref": "v1.8.0", |
| 192 | + "releaseStage": "stable", |
| 193 | +- "sha": "d4f90d4d3ea1ae1c049cd13dbbc93b75f43d846e", |
| 194 | +- "sk": "version-metadata/v1.8.x", |
| 195 | + "version": "v1.8.x" |
| 196 | +@@ -170,11 +72,4 @@ |
| 197 | + { |
| 198 | +- "created_at": "2023-04-19T18:39:28.873Z", |
| 199 | +- "display": "v1.7.x", |
| 200 | + "isLatest": false, |
| 201 | +- "pk": "terraform-docs-agents#version-metadata", |
| 202 | +- "product": "terraform-docs-agents", |
| 203 | +- "ref": "v1.7.1", |
| 204 | + "releaseStage": "stable", |
| 205 | +- "sha": "5b9d3fbefa48b778a62109029080a4dfd62a3c9b", |
| 206 | +- "sk": "version-metadata/v1.7.x", |
| 207 | + "version": "v1.7.x" |
| 208 | +@@ -182,11 +77,4 @@ |
| 209 | + { |
| 210 | +- "created_at": "2023-03-02T19:55:23.974Z", |
| 211 | +- "display": "v1.6.x", |
| 212 | + "isLatest": false, |
| 213 | +- "pk": "terraform-docs-agents#version-metadata", |
| 214 | +- "product": "terraform-docs-agents", |
| 215 | +- "ref": "v1.6.1", |
| 216 | + "releaseStage": "stable", |
| 217 | +- "sha": "f30be9cfc170e87628d1b781ef0e495056eac68f", |
| 218 | +- "sk": "version-metadata/v1.6.x", |
| 219 | + "version": "v1.6.x" |
| 220 | +@@ -194,11 +82,4 @@ |
| 221 | + { |
| 222 | +- "created_at": "2022-12-20T19:15:19.433Z", |
| 223 | +- "display": "v1.5.x", |
| 224 | + "isLatest": false, |
| 225 | +- "pk": "terraform-docs-agents#version-metadata", |
| 226 | +- "product": "terraform-docs-agents", |
| 227 | +- "ref": "v1.5.0", |
| 228 | + "releaseStage": "stable", |
| 229 | +- "sha": "891e2fcd94f0f11c284e6a76cf213173c9ee6349", |
| 230 | +- "sk": "version-metadata/v1.5.x", |
| 231 | + "version": "v1.5.x" |
| 232 | +@@ -206,11 +87,4 @@ |
| 233 | + { |
| 234 | +- "created_at": "2022-12-14T21:26:37.395Z", |
| 235 | +- "display": "v1.4.x", |
| 236 | + "isLatest": false, |
| 237 | +- "pk": "terraform-docs-agents#version-metadata", |
| 238 | +- "product": "terraform-docs-agents", |
| 239 | +- "ref": "v1.4.0", |
| 240 | + "releaseStage": "stable", |
| 241 | +- "sha": "f43efce2bb6e69797aeaf39964adcef1de62152c", |
| 242 | +- "sk": "version-metadata/v1.4.x", |
| 243 | + "version": "v1.4.x" |
| 244 | +@@ -218,11 +92,4 @@ |
| 245 | + { |
| 246 | +- "created_at": "2022-10-07T13:43:33.436Z", |
| 247 | +- "display": "v1.3.x", |
| 248 | + "isLatest": false, |
| 249 | +- "pk": "terraform-docs-agents#version-metadata", |
| 250 | +- "product": "terraform-docs-agents", |
| 251 | +- "ref": "v1.3.1", |
| 252 | + "releaseStage": "stable", |
| 253 | +- "sha": "0ececfe1b2647e861018488072f6b9e5ad90e46d", |
| 254 | +- "sk": "version-metadata/v1.3.x", |
| 255 | + "version": "v1.3.x" |
| 256 | +@@ -230,11 +97,4 @@ |
| 257 | + { |
| 258 | +- "created_at": "2022-08-05T17:39:34.922Z", |
| 259 | +- "display": "v1.2.x", |
| 260 | + "isLatest": false, |
| 261 | +- "pk": "terraform-docs-agents#version-metadata", |
| 262 | +- "product": "terraform-docs-agents", |
| 263 | +- "ref": "v1.2.7", |
| 264 | + "releaseStage": "stable", |
| 265 | +- "sha": "ca7f01d769c2f4ec0c955ef5d5ac9ef24b106eb2", |
| 266 | +- "sk": "version-metadata/v1.2.x", |
| 267 | + "version": "v1.2.x" |
| 268 | +``` |
0 commit comments