diff --git a/.github/workflows/spring-boot-product-catalog.yml b/.github/workflows/spring-boot-product-catalog.yml new file mode 100644 index 00000000..3a18284b --- /dev/null +++ b/.github/workflows/spring-boot-product-catalog.yml @@ -0,0 +1,81 @@ +# spring-boot-product-catalog sample CI — build + end-to-end smoke test. +# +# Scoped with `paths:` to this sample only, so unrelated samples don't pay for +# it (same convention as restheart-mongo.yml). Deliberately Keploy-independent: +# record/replay needs eBPF privileges that are awkward on hosted runners, so CI +# proves the app builds and serves the traffic the recorded suite was captured +# from. The committed test set under keploy/products-crud/ is the regression +# gate, exercised locally and in the Keploy pipelines. +name: spring-boot-product-catalog sample + +on: + pull_request: + paths: + - 'spring-boot-product-catalog/**' + - '.github/workflows/spring-boot-product-catalog.yml' + push: + branches: [main] + paths: + - 'spring-boot-product-catalog/**' + - '.github/workflows/spring-boot-product-catalog.yml' + workflow_dispatch: {} + +concurrency: + group: spring-boot-product-catalog-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: build (JDK 21) + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + cache: maven + + - name: Build with Maven + working-directory: spring-boot-product-catalog + run: ./mvnw -B -DskipTests clean package + + smoke: + name: end-to-end smoke test + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + + - name: Start app + Postgres + working-directory: spring-boot-product-catalog + run: docker compose up -d --build --wait + + - name: Drive the recorded workload + working-directory: spring-boot-product-catalog + run: ./seed.sh + + - name: Assert the catalog responds + working-directory: spring-boot-product-catalog + run: | + set -Eeuo pipefail + curl -fsS http://localhost:8080/api/products >/dev/null + curl -fsS http://localhost:8080/api/products/summary >/dev/null + # The 404 path must stay a clean 404, not a 500 — the recorded suite + # asserts the structured error body. + code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/api/products/99999) + [ "$code" = "404" ] || { echo "::error::expected 404 for a missing product, got $code"; exit 1; } + echo "OK — catalog, summary, and not-found paths all behave." + + - name: Dump app logs on failure + if: failure() + working-directory: spring-boot-product-catalog + run: docker compose logs --no-color app + + - name: Tear down + if: always() + working-directory: spring-boot-product-catalog + run: docker compose down -v diff --git a/README.md b/README.md index 5fd1a54e..0a271aff 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ This repo contains the sample for [Keploy's](https://keploy.io) Java Application 8. [Dropwizard Dynamic Deduplication](https://github.com/keploy/samples-java/tree/main/dropwizard-dedup) - A Dropwizard/Jersey sample used by Enterprise CI to validate that Java dynamic dedup works outside Spring Boot with the runtime Java agent, checked-in HTTP fixtures, native launch, classpath launch, Docker, distroless, and restricted Docker. 9. [Simple Java Dynamic Deduplication](https://github.com/keploy/samples-java/tree/main/simple-java-dedup) - A minimal plain-Java HTTP server used to smoke-test Java dynamic dedup on Java 8 and Java 17 in native and Docker launch modes. 10. [MySQL CRUD](https://github.com/keploy/samples-java/tree/main/mysql-crud) - A minimal Spring Boot + JDBC CRUD app used by Enterprise CI to validate the self-hosted cloud-replay pipeline's JDBC secret-obfuscation and object-storage mock upload/download paths against a real MySQL 8 backend. +11. [Springboot Product Catalog](https://github.com/keploy/samples-java/tree/main/spring-boot-product-catalog) - A Spring Boot + PostgreSQL product-catalog REST API shipping a committed 57-case Keploy test set and 190 Postgres mocks. Includes an app-only docker-compose with no database service at all, so the whole suite replays green with Postgres absent. ## Community Support ❤️ diff --git a/spring-boot-product-catalog/.dockerignore b/spring-boot-product-catalog/.dockerignore new file mode 100644 index 00000000..91c89b03 --- /dev/null +++ b/spring-boot-product-catalog/.dockerignore @@ -0,0 +1,6 @@ +target/ +keploy/ +.git/ +.idea/ +*.iml +HELP.md diff --git a/spring-boot-product-catalog/.gitattributes b/spring-boot-product-catalog/.gitattributes new file mode 100644 index 00000000..3b41682a --- /dev/null +++ b/spring-boot-product-catalog/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/spring-boot-product-catalog/.gitignore b/spring-boot-product-catalog/.gitignore new file mode 100644 index 00000000..553d239d --- /dev/null +++ b/spring-boot-product-catalog/.gitignore @@ -0,0 +1,37 @@ +target/ +.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +# keploy runtime artifacts +agent-debug.log +**/agent-debug.log +docker-compose-tmp.yaml diff --git a/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties b/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 00000000..216df058 --- /dev/null +++ b/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip diff --git a/spring-boot-product-catalog/Dockerfile b/spring-boot-product-catalog/Dockerfile new file mode 100644 index 00000000..5ead4273 --- /dev/null +++ b/spring-boot-product-catalog/Dockerfile @@ -0,0 +1,24 @@ +# syntax=docker/dockerfile:1 + +# ---- Build stage: compile & package with a pinned JDK 21 (reproducible on any host) ---- +FROM eclipse-temurin:21-jdk AS build +WORKDIR /app + +# Copy the Maven wrapper first so dependency resolution can be cached. +COPY .mvn/ .mvn/ +COPY mvnw pom.xml ./ +RUN ./mvnw -B -q dependency:go-offline + +# Now copy sources and build the fat jar (skip tests — they need a live DB). +COPY src ./src +RUN ./mvnw -B -q -DskipTests clean package + +# ---- Run stage: slim JRE image ---- +FROM eclipse-temurin:21-jre +WORKDIR /app +# curl is used by the docker-compose healthcheck. +RUN apt-get update && apt-get install -y --no-install-recommends curl \ + && rm -rf /var/lib/apt/lists/* +COPY --from=build /app/target/*.jar app.jar +EXPOSE 8080 +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/spring-boot-product-catalog/README.md b/spring-boot-product-catalog/README.md new file mode 100644 index 00000000..d806739d --- /dev/null +++ b/spring-boot-product-catalog/README.md @@ -0,0 +1,300 @@ +# Product Catalog — Spring Boot + PostgreSQL + +A product-catalog REST API built with [Spring Boot](https://spring.io) and +[PostgreSQL](https://www.postgresql.org/), used to show Keploy replacing hand-written API +tests. Instead of JUnit fixtures, mocks, and assertions, Keploy **records real traffic +once** — capturing every downstream Postgres call as a mock — and replays it as a +regression suite that needs no database at all. + +**Note** :- Issue Creation is disabled on this Repository, please visit [here](https://github.com/keploy/keploy/issues/new/choose) to submit Issue. + +## What this sample shows + +The recorded suite committed under `keploy/products-crud/` contains: + +- **57 test cases** covering the full CRUD lifecycle, category filtering, and 404/400 edge cases +- **190 Postgres mocks**, so the database is stubbed on replay and the tests run anywhere +- **Zero hand-written assertions** — the recorded responses *are* the assertions +- **Auto-detected noise** — Keploy marks non-deterministic fields (`createdAt`, the `Date` header) itself + +The payoff is `docker-compose.keploy.yml`, an app-only Compose file with no `postgres` +service at all. The suite still passes green, because every database call is served from +the recorded mocks. + +| Traditional | Keploy | +|-------------|--------| +| Write test clients + assertions by hand | Record real traffic once | +| Manage a test database / fixtures | Downstream calls captured as mocks | +| Mocks drift from reality | Mocks *are* reality (recorded from the real DB) | +| Tests need infra to run | Replay is dependency-free | + +## Architecture + +```mermaid +flowchart LR + Seed[seed.sh / curl] -->|HTTP| App[Spring Boot
Product Catalog] + App -->|JDBC| PG[(PostgreSQL 17)] + Keploy[keploy-v3
eBPF proxy] -.->|records inbound HTTP
as test cases| App + Keploy -.->|records outbound JDBC
as mocks| PG +``` + +Keploy sits in the network path via eBPF and records both sides at once: inbound HTTP +becomes test cases, outbound JDBC becomes mocks. The application needs no code changes. + +## Pre-requisites + +- [Docker](https://docs.docker.com/get-docker/) and Docker Compose — the app and database both run in containers +- No local Java or Maven needed; the multi-stage `Dockerfile` builds with a pinned Temurin 21 JDK + +## Quick Keploy Installation + +Based on your OS and preference (Docker/Native), you can set up Keploy using the one-click +installation method: + +```sh +curl -O https://raw.githubusercontent.com/keploy/keploy/main/keploy.sh && source keploy.sh +``` + +## Setup the Product Catalog App + +Clone the repository and start the stack: + +```bash +git clone https://github.com/keploy/samples-java && cd samples-java/spring-boot-product-catalog + +docker compose up --build +``` + +The API is now on `http://localhost:8080`. Tear down later with `docker compose down -v`. + +## About the API + +| Method | Path | Description | Success | +|----------|-------------------------------|----------------------------------------------------|----------------| +| `POST` | `/api/products` | Create a product | `201` + `Location` | +| `GET` | `/api/products` | List all products (optional `?category=`) | `200` | +| `GET` | `/api/products/summary` | Inventory rollup (optional `?lowStockThreshold=`) | `200` | +| `GET` | `/api/products/{id}` | Fetch one product | `200` / `404` | +| `PUT` | `/api/products/{id}` | Replace a product | `200` / `404` | +| `PATCH` | `/api/products/{id}/stock` | Adjust stock by a `delta` | `200` / `404` / `409` | +| `DELETE` | `/api/products/{id}` | Delete a product | `204` / `404` | + +A product has `name` (required, ≤120 chars), `description` (optional, ≤1000 chars), +`price` (required, > 0), `stockQuantity` (required, ≥ 0), and `category`. Validation +failures return `400` with a structured `fieldErrors` map, which is what produces the +recorded 400 traffic. + +> The committed test set covers CRUD, category filters, and the 404/400 paths. It was +> recorded before `/summary` and `/{id}/stock` were added, so those two endpoints are not +> in it yet. The curl walkthrough below now exercises them, so a fresh re-record (or a +> `./seed.sh` run) picks them up. + +## Capture the testcases + +Keploy brings the whole stack up itself in record mode. In **terminal A**: + +```bash +keploy record -c "docker compose up" \ + --cmd-type docker-compose \ + --container-name catalog-app \ + -n product-catalog_default \ + --metadata "name=products-crud,description=full CRUD + filters + 404 + 400" +``` + +### Generate testcases + +To generate testcases we just need to **make some API calls.** You can use +[Postman](https://www.postman.com/), [Hoppscotch](https://hoppscotch.io/), or simply +`curl`. + +These seven calls exercise every endpoint once, in a natural order — create, read, update, +adjust, delete — so a single pass records a coherent CRUD suite. + +**1. Create a product** (`POST /api/products`): + +```bash +curl --location --request POST 'http://localhost:8080/api/products' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "name": "Mechanical Keyboard", + "description": "65% hot-swappable", + "price": 129.99, + "stockQuantity": 40, + "category": "peripherals" +}' +``` + +This returns the created product. `createdAt` is automatically ignored during testing +because it will always be different. + +```json +{ + "id": 1, + "name": "Mechanical Keyboard", + "description": "65% hot-swappable", + "price": 129.99, + "stockQuantity": 40, + "category": "peripherals", + "createdAt": "2026-08-05T09:41:12.483Z" +} +``` + +**2. List the catalog, optionally filtered by category** (`GET /api/products`): + +```bash +curl --location --request GET 'http://localhost:8080/api/products' +curl --location --request GET 'http://localhost:8080/api/products?category=peripherals' +``` + +**3. Roll up inventory** (`GET /api/products/summary`) — counts totals and flags anything +at or below the low-stock threshold: + +```bash +curl --location --request GET 'http://localhost:8080/api/products/summary?lowStockThreshold=15' +``` + +**4. Fetch a single product by id** (`GET /api/products/{id}`): + +```bash +curl --location --request GET 'http://localhost:8080/api/products/1' +``` + +**5. Replace a product** (`PUT /api/products/{id}`): + +```bash +curl --location --request PUT 'http://localhost:8080/api/products/1' \ +--header 'Content-Type: application/json' \ +--data-raw '{"name":"Keyboard v2","price":149.99,"stockQuantity":35,"category":"peripherals"}' +``` + +**6. Adjust stock by a delta** (`PATCH /api/products/{id}/stock`) — a negative delta ships +units, a positive delta restocks; driving stock below zero returns `409`: + +```bash +curl --location --request PATCH 'http://localhost:8080/api/products/1/stock' \ +--header 'Content-Type: application/json' \ +--data-raw '{"delta":-5}' +``` + +**7. Delete a product** (`DELETE /api/products/{id}`): + +```bash +curl --location --request DELETE 'http://localhost:8080/api/products/1' +``` + +Record an error path or two as well, so the suite covers the `404` and `400` branches: + +```bash +curl --location --request GET 'http://localhost:8080/api/products/99999' +curl --location --request POST 'http://localhost:8080/api/products' \ +--header 'Content-Type: application/json' \ +--data-raw '{"name":"","price":-5}' +``` + +Or skip the manual calls and run the bundled traffic generator, which drives the whole +workload — 12 products across 6 categories, every read path, updates, deletes, and the +404/400 cases — in one shot. This is exactly what produced the committed 57-case suite: + +```bash +./seed.sh +``` + +Then stop the recording with `Ctrl+C` in terminal A. Keploy writes test cases to +`keploy/products-crud/tests/` and the recorded Postgres interactions to +`keploy/products-crud/mocks.yaml`. + +Now, let's see the magic! 🪄💫 + +## Run the test cases + +```bash +keploy test -c "docker compose up" \ + --cmd-type docker-compose \ + --container-name catalog-app \ + -n product-catalog_default \ + --mappings \ + --delay 20 +``` + +Expected: + +``` + "products-crud" Total: 57 Passed: 57 Failed: 0 +``` + +This will run the testcases and generate the report in the `keploy/reports` folder. + +Two flags matter here, and both are already set as defaults in `keploy.yml`: + +- `--mappings` pins each test case to only the mocks it recorded, which keeps stateful + reads (list-after-delete, get-after-update) correct. +- `--delay 20` waits for the app to finish booting before the first test fires. Spring + Boot takes about 13 seconds; too short a delay races startup and reports `got=0` on the + first case. + +### Bonus: replay with no database at all + +`docker-compose.keploy.yml` is an app-only Compose file — there is literally no `postgres` +service in it. Keploy serves every database call from the recorded mocks, so the app boots +and passes the full suite with the database entirely absent: + +```bash +keploy test -c "docker compose -f docker-compose.keploy.yml up" \ + --cmd-type docker-compose --container-name catalog-app -n product-catalog_default \ + --mappings --delay 20 +``` + +## What Keploy generated + +``` +keploy/ +└── products-crud/ + ├── config.yaml # test-set metadata (name, description, mock hash) + ├── mappings.yaml # which mocks belong to which test case + ├── mocks.yaml # 190 PostgresV3 mocks + 2 DNS + └── tests/ + ├── post-api-products-*.yaml # 12 creates + 8 validation 400s + ├── get-api-products-*.yaml # list + category filters + post-delete lists + ├── get-api-products-by-id-*.yaml # reads + 404s + ├── put-api-products-by-id-*.yaml # updates + invalid + 404 + └── delete-api-products-by-id-*.yaml +``` + +A recorded test case is just the request plus the expected response, with the +non-deterministic fields marked as noise automatically: + +```yaml +kind: Http +name: post-api-products-1 +spec: + req: { method: POST, url: .../api/products, body: '{"name":"Mechanical Keyboard",...}' } + resp: { status_code: 201, body: '{"id":1,"name":"Mechanical Keyboard",...,"createdAt":"..."}' } + assertions: + noise: + body.createdAt: [] # Keploy detected this is non-deterministic + header.Date: [] +``` + +## Troubleshooting + +- **First test case fails with `got=0`.** The delay was too short and the request raced + Spring Boot's startup. Raise `--delay`. +- **Replay fails on stateful reads.** Make sure `--mappings` is on, otherwise a + list-after-delete test can be served mocks recorded from a different point in time. +- **`network product-catalog_default not found`.** Compose derives the network from the + project name, which this sample pins via `name: product-catalog` in + `docker-compose.yml`. If you renamed the project, pass your own name to `-n`. + +## Files + +| Path | Purpose | +|---|---| +| `src/main/java/io/keploy/productcatalog/` | Application source — controller, service, JPA repository, DTOs, exception handler | +| `src/main/resources/application.properties` | Datasource and JPA configuration | +| `pom.xml` | Spring Boot, Java 21, Spring Data JPA, validation, Actuator, Postgres driver | +| `Dockerfile` | Multi-stage build: Temurin 21 JDK → JRE runtime | +| `docker-compose.yml` | App + Postgres, for running and recording | +| `docker-compose.keploy.yml` | App only, no database — for the dependency-free replay | +| `keploy.yml` | Keploy config: Compose command, container/network names, noise rules | +| `keploy/products-crud/` | The recorded test set: 57 test cases + mocks | +| `seed.sh` | Traffic generator used during `keploy record` | diff --git a/spring-boot-product-catalog/docker-compose.keploy.yml b/spring-boot-product-catalog/docker-compose.keploy.yml new file mode 100644 index 00000000..f88473cd --- /dev/null +++ b/spring-boot-product-catalog/docker-compose.keploy.yml @@ -0,0 +1,17 @@ +# App-only compose for the Keploy replay demo — NOTICE: there is NO postgres service here. +# Keploy serves every database call from the mocks it recorded, so the Spring Boot app +# boots and passes its whole test suite with the database entirely absent. +name: product-catalog + +services: + app: + build: . + container_name: catalog-app + environment: + # Still points at "postgres" — but nothing is running there. Keploy intercepts the + # connection and replays the recorded Postgres traffic instead. + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/catalog + SPRING_DATASOURCE_USERNAME: catalog + SPRING_DATASOURCE_PASSWORD: catalog + ports: + - "8080:8080" diff --git a/spring-boot-product-catalog/docker-compose.yml b/spring-boot-product-catalog/docker-compose.yml new file mode 100644 index 00000000..50495849 --- /dev/null +++ b/spring-boot-product-catalog/docker-compose.yml @@ -0,0 +1,48 @@ +# Pinned so the Compose network is always product-catalog_default, whatever the +# clone directory is called — Keploy is passed that exact name via -n. +name: product-catalog + +services: + postgres: + image: postgres:17-alpine + container_name: catalog-postgres + environment: + POSTGRES_DB: catalog + POSTGRES_USER: catalog + POSTGRES_PASSWORD: catalog + ports: + - "5432:5432" + volumes: + - catalog-pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U catalog -d catalog"] + interval: 3s + timeout: 3s + retries: 10 + + app: + build: . + container_name: catalog-app + depends_on: + postgres: + condition: service_healthy + environment: + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/catalog + SPRING_DATASOURCE_USERNAME: catalog + SPRING_DATASOURCE_PASSWORD: catalog + ports: + - "8080:8080" + healthcheck: + # Uses the curl installed in the runtime image + Actuator's readiness probe. + # Makes `docker compose up --wait` block until the app is actually ready, not just running. + # Deliberately the readiness probe (not /actuator/health): the aggregate health endpoint + # runs the JDBC `db` indicator on every poll, which Keploy would record as extra Postgres + # mocks during `keploy record`. The readiness group doesn't touch the DB, so capture stays clean. + test: ["CMD-SHELL", "curl -fsS http://localhost:8080/actuator/health/readiness || exit 1"] + interval: 5s + timeout: 3s + retries: 12 + start_period: 15s + +volumes: + catalog-pgdata: diff --git a/spring-boot-product-catalog/keploy.yml b/spring-boot-product-catalog/keploy.yml new file mode 100755 index 00000000..e80a592c --- /dev/null +++ b/spring-boot-product-catalog/keploy.yml @@ -0,0 +1,110 @@ +# Generated by Keploy (3.5.95), trimmed to the keys this sample actually needs. +path: "" +appName: product-catalog +appId: 0 +command: docker compose up +templatize: + testSets: [] +port: 0 +e2e: false +dnsPort: 26789 +proxyPort: 16789 +incomingProxyPort: 36789 +debug: false +disableTele: false +disableANSI: false +jsonOutput: false +# The app runs in Compose; `name: product-catalog` is pinned in docker-compose.yml +# so this network name holds no matter what the clone directory is called. +containerName: catalog-app +networkName: product-catalog_default +buildDelay: 30 +test: + selectedTests: {} + globalNoise: + global: + # Keploy already auto-marks these per test case; repeating them + # globally keeps a re-recorded suite deterministic too. + body.createdAt: [] + header.Date: [] + test-sets: {} + replaceWith: + global: + url: {} + port: {} + test-sets: {} + # Spring Boot needs ~13s to boot; a shorter delay races the first test case + # and reports got=0 on it. + delay: 20 + host: localhost + port: 0 + apiTimeout: 5 + skipCoverage: false + coverageReportPath: "" + ignoreOrdering: true + mongoPassword: default@123 + language: "" + removeUnusedMocks: false + preserveFailedMocks: false + fallBackOnMiss: false + jacocoAgentPath: "" + basePath: "" + mocking: true + ignoredTests: {} + disableLineCoverage: false + disableMockUpload: true + useLocalMock: false + updateTemplate: false + mustPass: false + maxFailAttempts: 5 + maxFlakyChecks: 1 + compareAll: false + schemaMatch: false + updateTestMapping: false + disableAutoHeaderNoise: false + strictMockWindow: true + # Pins each test case to the mocks recorded for it, so stateful reads + # (list-after-delete, get-after-update) replay against the right DB state. + mappings: true +record: + filters: [] + basePath: "" + recordTimer: 0s + metadata: "" + testCaseNaming: descriptive + sync: false + enableSampling: 0 + memoryLimit: 0 + globalPassthrough: false + tlsPrivateKeyPath: "" +report: + selectedTestSets: {} + showFullBody: false + reportPath: "" + summary: false + testCaseIDs: [] + format: "" +disableMapping: false +retryPassing: false +configPath: "" +bypassRules: [] +generateGithubActions: false +keployContainer: keploy-v3 +keployNetwork: keploy-network +cmdType: docker-compose +contract: + services: [] + tests: [] + path: "" + download: false + generate: false + driven: consumer + mappings: + servicesMapping: {} + self: s1 +inCi: false +serverPort: 0 +mockDownload: + registryIds: [] + +# Visit [https://keploy.io/docs/running-keploy/configuration-file/] to learn about using keploy through configuration file. diff --git a/spring-boot-product-catalog/keploy/.gitignore b/spring-boot-product-catalog/keploy/.gitignore new file mode 100644 index 00000000..f5dbb873 --- /dev/null +++ b/spring-boot-product-catalog/keploy/.gitignore @@ -0,0 +1,2 @@ +/reports/ +**/agent-debug.log diff --git a/spring-boot-product-catalog/keploy/products-crud/config.yaml b/spring-boot-product-catalog/keploy/products-crud/config.yaml new file mode 100644 index 00000000..f33c0903 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/config.yaml @@ -0,0 +1,10 @@ +preScript: "" +postScript: "" +appCommand: "" +template: {} +metadata: + description: full CRUD across categories + filters + 404 + 400 validation + name: products-crud +mockRegistry: + mock: 9ad0466a7385cfa1465bf1f65c95f2a5eef7be7984aea8dd598619ab35a6871c + app: product-catalog diff --git a/spring-boot-product-catalog/keploy/products-crud/mappings.yaml b/spring-boot-product-catalog/keploy/products-crud/mappings.yaml new file mode 100644 index 00000000..17583d90 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/mappings.yaml @@ -0,0 +1,846 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: TestMocksMapping +test_set_id: products-crud +tests: + - id: get-api-products-8 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-137 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.441169673Z" + resTimestampMock: "2026-08-05T09:47:53.442449465Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: delete-api-products-by-id-2 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-171 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.728023965Z" + resTimestampMock: "2026-08-05T09:47:53.72844359Z" + - name: mock-172 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.729839382Z" + resTimestampMock: "2026-08-05T09:47:53.73016509Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: put-api-products-by-id-3 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-160 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.658563673Z" + resTimestampMock: "2026-08-05T09:47:53.658882173Z" + - name: mock-161 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.660541715Z" + resTimestampMock: "2026-08-05T09:47:53.66103009Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-12 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-178 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.772068173Z" + resTimestampMock: "2026-08-05T09:47:53.772437048Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-12 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-83 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.125194089Z" + resTimestampMock: "2026-08-05T09:47:52.125414131Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-4 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-59 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.899644047Z" + resTimestampMock: "2026-08-05T09:47:51.900056381Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-2 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-47 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.53024938Z" + resTimestampMock: "2026-08-05T09:47:51.530576005Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-4 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-98 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.270684797Z" + resTimestampMock: "2026-08-05T09:47:52.271191256Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-7 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-68 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.984144964Z" + resTimestampMock: "2026-08-05T09:47:51.984652089Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-12 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-122 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.440293881Z" + resTimestampMock: "2026-08-05T09:47:52.440614006Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-17 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-184 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.829325465Z" + resTimestampMock: "2026-08-05T09:47:53.829910548Z" + - name: mock-182 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.794472507Z" + resTimestampMock: "2026-08-05T09:47:53.794685382Z" + - id: get-api-products-1 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-44 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780988672Z" + resTimestampMock: "2026-08-05T09:47:50.782420588Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-7 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-134 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.396563131Z" + resTimestampMock: "2026-08-05T09:47:53.397424215Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-2 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-92 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.221113714Z" + resTimestampMock: "2026-08-05T09:47:52.221878464Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-11 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-80 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.099786506Z" + resTimestampMock: "2026-08-05T09:47:52.100031006Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-8 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-71 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.010881381Z" + resTimestampMock: "2026-08-05T09:47:52.011236797Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-6 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-104 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.312949714Z" + resTimestampMock: "2026-08-05T09:47:52.313411464Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-6 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-131 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.361986715Z" + resTimestampMock: "2026-08-05T09:47:53.362649548Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: put-api-products-by-id-2 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-153 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.610412923Z" + resTimestampMock: "2026-08-05T09:47:53.610776215Z" + - name: mock-154 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.61306284Z" + resTimestampMock: "2026-08-05T09:47:53.613768423Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-3 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-56 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.875052589Z" + resTimestampMock: "2026-08-05T09:47:51.875578589Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-3 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-86 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.159595547Z" + resTimestampMock: "2026-08-05T09:47:52.160122464Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-15 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-164 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.67993934Z" + resTimestampMock: "2026-08-05T09:47:53.68026109Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-9 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-74 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.037338381Z" + resTimestampMock: "2026-08-05T09:47:52.037771422Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-10 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-77 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.073007214Z" + resTimestampMock: "2026-08-05T09:47:52.073631089Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: put-api-products-by-id-4 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-187 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.859003257Z" + resTimestampMock: "2026-08-05T09:47:53.859485257Z" + - name: mock-182 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.794472507Z" + resTimestampMock: "2026-08-05T09:47:53.794685382Z" + - id: get-api-products-10 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-143 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.505831715Z" + resTimestampMock: "2026-08-05T09:47:53.506370798Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-5 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-101 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.292355464Z" + resTimestampMock: "2026-08-05T09:47:52.292859006Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-5 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-62 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.927955881Z" + resTimestampMock: "2026-08-05T09:47:51.928482631Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-11 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-175 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.749170382Z" + resTimestampMock: "2026-08-05T09:47:53.749575757Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-6 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-65 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.955141339Z" + resTimestampMock: "2026-08-05T09:47:51.955490881Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-2 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-53 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.846853214Z" + resTimestampMock: "2026-08-05T09:47:51.847352464Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-10 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-116 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.402408131Z" + resTimestampMock: "2026-08-05T09:47:52.402836214Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-4 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-125 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.285848048Z" + resTimestampMock: "2026-08-05T09:47:53.287752631Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-14 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-157 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.635581965Z" + resTimestampMock: "2026-08-05T09:47:53.635869173Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-8 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-110 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.356676256Z" + resTimestampMock: "2026-08-05T09:47:52.357077923Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-3 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-95 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.243478422Z" + resTimestampMock: "2026-08-05T09:47:52.244070422Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-13 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-150 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.583612631Z" + resTimestampMock: "2026-08-05T09:47:53.584026673Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-11 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-119 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.420297798Z" + resTimestampMock: "2026-08-05T09:47:52.420634006Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-7 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-107 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.334785673Z" + resTimestampMock: "2026-08-05T09:47:52.335133048Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-16 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-181 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.792379507Z" + resTimestampMock: "2026-08-05T09:47:53.792659465Z" + - name: mock-182 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.794472507Z" + resTimestampMock: "2026-08-05T09:47:53.794685382Z" + - id: get-api-products-by-id-1 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-89 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.195893464Z" + resTimestampMock: "2026-08-05T09:47:52.196562089Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-by-id-9 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-113 + kind: PostgresV3 + timestamp: 1785923272 + reqTimestampMock: "2026-08-05T09:47:52.380234173Z" + resTimestampMock: "2026-08-05T09:47:52.380658298Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-9 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-140 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.475508256Z" + resTimestampMock: "2026-08-05T09:47:53.476110715Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: get-api-products-5 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-128 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.327987173Z" + resTimestampMock: "2026-08-05T09:47:53.328826465Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: post-api-products-1 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-50 + kind: PostgresV3 + timestamp: 1785923271 + reqTimestampMock: "2026-08-05T09:47:51.787114006Z" + resTimestampMock: "2026-08-05T09:47:51.788629672Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: put-api-products-by-id-1 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-146 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.53589159Z" + resTimestampMock: "2026-08-05T09:47:53.536561381Z" + - name: mock-147 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.55347709Z" + resTimestampMock: "2026-08-05T09:47:53.554577756Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: delete-api-products-by-id-1 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-167 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.700873548Z" + resTimestampMock: "2026-08-05T09:47:53.701242506Z" + - name: mock-168 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.70749034Z" + resTimestampMock: "2026-08-05T09:47:53.70785459Z" + - name: mock-45 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.803576297Z" + resTimestampMock: "2026-08-05T09:47:50.80382238Z" + - id: delete-api-products-by-id-3 + mock_entries: + - name: mock-43 + kind: PostgresV3 + timestamp: 1785923270 + reqTimestampMock: "2026-08-05T09:47:50.780304755Z" + resTimestampMock: "2026-08-05T09:47:50.780679005Z" + - name: mock-190 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.887699757Z" + resTimestampMock: "2026-08-05T09:47:53.888236507Z" + - name: mock-182 + kind: PostgresV3 + timestamp: 1785923273 + reqTimestampMock: "2026-08-05T09:47:53.794472507Z" + resTimestampMock: "2026-08-05T09:47:53.794685382Z" diff --git a/spring-boot-product-catalog/keploy/products-crud/mocks.yaml b/spring-boot-product-catalog/keploy/products-crud/mocks.yaml new file mode 100644 index 00000000..f48e6327 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/mocks.yaml @@ -0,0 +1,9212 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: DNS +name: mock-0 +spec: + metadata: + name: DNS + qtype: AAAA + type: config + request: + name: postgres. + qtype: 28 + qclass: 1 + response: + rcode: 0 + authoritative: false + recursionAvailable: true + truncated: false + reqTimestampMock: 2026-08-05T09:47:43.363938085Z + resTimestampMock: 2026-08-05T09:47:43.365271043Z +--- +version: api.keploy.io/v1beta1 +kind: DNS +name: mock-1 +spec: + metadata: + name: DNS + qtype: A + type: config + request: + name: postgres. + qtype: 1 + qclass: 1 + response: + rcode: 0 + authoritative: false + recursionAvailable: true + truncated: false + answers: + - "postgres.\t600\tIN\tA\t172.19.0.2" + reqTimestampMock: 2026-08-05T09:47:43.364401627Z + resTimestampMock: 2026-08-05T09:47:43.365587335Z +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-2 +spec: + metadata: + connID: "0" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:43.395199752Z + resTimestampMock: 2026-08-05T09:47:43.39558646Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-3 +spec: + metadata: + connID: "0" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 89 + backendSecretKey: 1570673303 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:43.398372252Z + resTimestampMock: 2026-08-05T09:47:43.528343168Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-4 +spec: + metadata: + class: SESSION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:0:2026-08-05T09:47:43.732985502Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:43.732985502Z + resTimestampMock: 2026-08-05T09:47:43.735929752Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-5 +spec: + metadata: + class: SESSION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1 + sqlNormalized: SHOW TRANSACTION ISOLATION LEVEL + invocationId: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1:0:2026-08-05T09:47:43.792630585Z:2 + precedingTxState: idle + response: + rowDescription: + - name: transaction_isolation + typeOid: 25 + typeSize: -1 + typeMod: -1 + rows: + - - read committed + commandComplete: SHOW + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:43.792630585Z + resTimestampMock: 2026-08-05T09:47:43.795450418Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-6 +spec: + metadata: + class: CATALOG + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: CATALOG + lifetime: session + sqlAstHash: sha256:af513b7fc519fd88cbd287b36a1a06a6477206fece5f4d129540fd9d2ecd7aaa + sqlNormalized: select string_agg(word, $1) from pg_catalog.pg_get_keywords() where word <> ALL ($2::text[]) + invocationId: sha256:af513b7fc519fd88cbd287b36a1a06a6477206fece5f4d129540fd9d2ecd7aaa:0:2026-08-05T09:47:43.953154085Z:3 + precedingTxState: idle + response: + rowDescription: + - name: string_agg + typeOid: 25 + typeSize: -1 + typeMod: -1 + rows: + - - abort,absent,access,aggregate,also,analyse,analyze,attach,backward,bit,cache,checkpoint,class,cluster,columns,comment,comments,compression,concurrently,conditional,configuration,conflict,connection,content,conversion,copy,cost,csv,current_catalog,current_schema,database,delimiter,delimiters,depends,detach,dictionary,disable,discard,do,document,empty,enable,encoding,encrypted,enum,error,event,exclusive,explain,expression,extension,family,finalize,force,format,forward,freeze,functions,generated,greatest,groups,handler,header,if,ilike,immutable,implicit,import,include,indent,index,indexes,inherit,inherits,inline,instead,isnull,json,json_array,json_arrayagg,json_exists,json_object,json_objectagg,json_query,json_scalar,json_serialize,json_table,json_value,keep,keys,label,leakproof,least,limit,listen,load,location,lock,locked,logged,mapping,materialized,merge_action,mode,move,nested,nfc,nfd,nfkc,nfkd,nothing,notify,notnull,nowait,off,offset,oids,omit,operator,owned,owner,parallel,parser,passing,password,plan,plans,policy,prepared,procedural,procedures,program,publication,quote,quotes,reassign,recheck,refresh,reindex,rename,replace,replica,reset,restrict,returning,routines,rule,scalar,schemas,sequences,server,setof,share,show,skip,snapshot,stable,standalone,statistics,stdin,stdout,storage,stored,strict,string,strip,subscription,support,sysid,tables,tablespace,target,temp,template,text,truncate,trusted,types,unconditional,unencrypted,unlisten,unlogged,until,vacuum,valid,validate,validator,variadic,verbose,version,views,volatile,whitespace,wrapper,xml,xmlattributes,xmlconcat,xmlelement,xmlexists,xmlforest,xmlnamespaces,xmlparse,xmlpi,xmlroot,xmlserialize,xmltable,yes + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:43.953154085Z + resTimestampMock: 2026-08-05T09:47:43.971701752Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-7 +spec: + metadata: + connID: "2" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:43.987929502Z + resTimestampMock: 2026-08-05T09:47:43.990566544Z +connectionId: "2" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-8 +spec: + metadata: + connID: "2" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 90 + backendSecretKey: 1516982670 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:43.991022919Z + resTimestampMock: 2026-08-05T09:47:44.116627419Z +connectionId: "2" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-9 +spec: + metadata: + class: SESSION + connID: "2" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:2:2026-08-05T09:47:44.126023627Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.126023627Z + resTimestampMock: 2026-08-05T09:47:44.12836771Z +connectionId: "2" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-10 +spec: + metadata: + class: VALIDATION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: VALIDATION + lifetime: session + sqlAstHash: sha256:f0a8e37c2db38f7af30066abf3a0f2e05fdd4ef9bb13acc0c53842c726937bf9 + sqlNormalized: select version() + invocationId: sha256:f0a8e37c2db38f7af30066abf3a0f2e05fdd4ef9bb13acc0c53842c726937bf9:0:2026-08-05T09:47:44.128919627Z:4 + precedingTxState: idle + response: + rowDescription: + - name: version + typeOid: 25 + typeSize: -1 + typeMod: -1 + rows: + - - PostgreSQL 17.10 on aarch64-unknown-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.128919627Z + resTimestampMock: 2026-08-05T09:47:44.133486752Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-11 +spec: + metadata: + connID: "4" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.181819169Z + resTimestampMock: 2026-08-05T09:47:44.185133669Z +connectionId: "4" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-12 +spec: + metadata: + connID: "4" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 91 + backendSecretKey: 1281459909 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.18544396Z + resTimestampMock: 2026-08-05T09:47:44.215953335Z +connectionId: "4" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-13 +spec: + metadata: + class: SESSION + connID: "4" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:4:2026-08-05T09:47:44.219319294Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.219319294Z + resTimestampMock: 2026-08-05T09:47:44.220617919Z +connectionId: "4" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-14 +spec: + metadata: + connID: "6" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.259753752Z + resTimestampMock: 2026-08-05T09:47:44.260418585Z +connectionId: "6" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-15 +spec: + metadata: + class: VALIDATION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: VALIDATION + lifetime: session + sqlAstHash: sha256:a0dd9013c5be0ecf56e918b289f5d109a7e646ce68a44f269f4885d0ec385608 + sqlNormalized: select current_schema() + invocationId: sha256:a0dd9013c5be0ecf56e918b289f5d109a7e646ce68a44f269f4885d0ec385608:0:2026-08-05T09:47:44.263920002Z:5 + precedingTxState: idle + response: + rowDescription: + - name: current_schema + typeOid: 19 + typeSize: 64 + typeMod: -1 + rows: + - - public + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.263920002Z + resTimestampMock: 2026-08-05T09:47:44.264745127Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-16 +spec: + metadata: + class: VALIDATION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: VALIDATION + lifetime: session + sqlAstHash: sha256:a35a118a41caa512dda6164b2454bc37f9f46d5f32535588c29a7b79bf8eb680 + sqlNormalized: select current_catalog + invocationId: sha256:a35a118a41caa512dda6164b2454bc37f9f46d5f32535588c29a7b79bf8eb680:0:2026-08-05T09:47:44.270295919Z:6 + precedingTxState: idle + response: + rowDescription: + - name: current_catalog + typeOid: 19 + typeSize: 64 + typeMod: -1 + rows: + - - catalog + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.270295919Z + resTimestampMock: 2026-08-05T09:47:44.27098596Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-17 +spec: + metadata: + connID: "6" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 92 + backendSecretKey: -712285378 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.260835294Z + resTimestampMock: 2026-08-05T09:47:44.272657794Z +connectionId: "6" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-18 +spec: + metadata: + class: SESSION + connID: "6" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:6:2026-08-05T09:47:44.273994044Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.273994044Z + resTimestampMock: 2026-08-05T09:47:44.274751419Z +connectionId: "6" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-19 +spec: + metadata: + class: CATALOG + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: CATALOG + lifetime: session + sqlAstHash: sha256:7563dbca6c43bce5f3912757a488487b302ceacf4ae7783bc7e6036bdd379777 + sqlNormalized: SELECT setting FROM pg_catalog.pg_settings WHERE name=$1 + invocationId: sha256:7563dbca6c43bce5f3912757a488487b302ceacf4ae7783bc7e6036bdd379777:0:2026-08-05T09:47:44.273495544Z:7 + precedingTxState: idle + response: + rowDescription: + - name: setting + tableOid: 12104 + colAttrNum: 2 + typeOid: 25 + typeSize: -1 + typeMod: -1 + rows: + - - read committed + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.273495544Z + resTimestampMock: 2026-08-05T09:47:44.277974419Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-20 +spec: + metadata: + class: SESSION + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1 + sqlNormalized: SHOW TRANSACTION ISOLATION LEVEL + invocationId: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1:0:2026-08-05T09:47:44.280205044Z:8 + precedingTxState: idle + response: + rowDescription: + - name: transaction_isolation + typeOid: 25 + typeSize: -1 + typeMod: -1 + rows: + - - read committed + commandComplete: SHOW + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.280205044Z + resTimestampMock: 2026-08-05T09:47:44.280580419Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-21 +spec: + metadata: + connID: "8" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.317761044Z + resTimestampMock: 2026-08-05T09:47:44.318751752Z +connectionId: "8" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-22 +spec: + metadata: + connID: "8" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 93 + backendSecretKey: 1387935182 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.319120585Z + resTimestampMock: 2026-08-05T09:47:44.33074896Z +connectionId: "8" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-23 +spec: + metadata: + class: SESSION + connID: "8" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:8:2026-08-05T09:47:44.331718877Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.331718877Z + resTimestampMock: 2026-08-05T09:47:44.332338794Z +connectionId: "8" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-24 +spec: + metadata: + connID: "10" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.367987627Z + resTimestampMock: 2026-08-05T09:47:44.372051419Z +connectionId: "10" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-25 +spec: + metadata: + connID: "10" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 94 + backendSecretKey: 1117012829 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.37230546Z + resTimestampMock: 2026-08-05T09:47:44.385561752Z +connectionId: "10" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-26 +spec: + metadata: + class: SESSION + connID: "10" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:10:2026-08-05T09:47:44.387122627Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.387122627Z + resTimestampMock: 2026-08-05T09:47:44.387675085Z +connectionId: "10" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-27 +spec: + metadata: + connID: "12" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.430664002Z + resTimestampMock: 2026-08-05T09:47:44.432441002Z +connectionId: "12" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-28 +spec: + metadata: + connID: "12" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 95 + backendSecretKey: -473708753 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.438027669Z + resTimestampMock: 2026-08-05T09:47:44.467127877Z +connectionId: "12" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-29 +spec: + metadata: + class: SESSION + connID: "12" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:12:2026-08-05T09:47:44.468336794Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.468336794Z + resTimestampMock: 2026-08-05T09:47:44.472110252Z +connectionId: "12" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-30 +spec: + metadata: + connID: "14" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.509108044Z + resTimestampMock: 2026-08-05T09:47:44.510687127Z +connectionId: "14" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-31 +spec: + metadata: + connID: "14" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 96 + backendSecretKey: 247678643 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.510942752Z + resTimestampMock: 2026-08-05T09:47:44.521158002Z +connectionId: "14" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-32 +spec: + metadata: + class: SESSION + connID: "14" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:14:2026-08-05T09:47:44.524340252Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.524340252Z + resTimestampMock: 2026-08-05T09:47:44.525261752Z +connectionId: "14" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-33 +spec: + metadata: + connID: "16" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.560853794Z + resTimestampMock: 2026-08-05T09:47:44.561693335Z +connectionId: "16" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-34 +spec: + metadata: + connID: "16" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 97 + backendSecretKey: -1204386272 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.561996669Z + resTimestampMock: 2026-08-05T09:47:44.575476585Z +connectionId: "16" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-35 +spec: + metadata: + class: SESSION + connID: "16" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:16:2026-08-05T09:47:44.57977296Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.57977296Z + resTimestampMock: 2026-08-05T09:47:44.581012169Z +connectionId: "16" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-36 +spec: + metadata: + connID: "18" + lifetime: connection + tls_stage: prelude + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + reqTimestampMock: 2026-08-05T09:47:44.627988127Z + resTimestampMock: 2026-08-05T09:47:44.628956211Z +connectionId: "18" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-37 +spec: + metadata: + connID: "18" + lifetime: connection + type: config + postgresV3: + type: session + session: + protocolVersion: "3.0" + sslResponse: "N" + serverVersion: "17.10" + parameterStatus: + DateStyle: ISO, MDY + IntervalStyle: postgres + TimeZone: Etc/UTC + application_name: "" + client_encoding: UTF8 + default_transaction_read_only: "off" + in_hot_standby: "off" + integer_datetimes: "on" + is_superuser: "on" + scram_iterations: "4096" + server_encoding: UTF8 + server_version: "17.10" + session_authorization: catalog + standard_conforming_strings: "on" + backendProcessID: 98 + backendSecretKey: 1928555935 + observedAuthMode: scram + reqTimestampMock: 2026-08-05T09:47:44.630094086Z + resTimestampMock: 2026-08-05T09:47:44.669170419Z +connectionId: "18" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-38 +spec: + metadata: + class: SESSION + connID: "18" + lifetime: session + type: config + postgresV3: + type: query + query: + class: SESSION + lifetime: session + sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8 + sqlNormalized: SET application_name = $1 + invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:18:2026-08-05T09:47:44.669446044Z:1 + precedingTxState: idle + response: + commandComplete: SET + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:44.669446044Z + resTimestampMock: 2026-08-05T09:47:44.670092502Z +connectionId: "18" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-39 +spec: + metadata: + class: CATALOG + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: CATALOG + lifetime: session + sqlAstHash: sha256:310dd72f6f1f2491f33fdba09cde16346c26fa93a51996e0a7d71260fb04d9ce + sqlNormalized: select * from information_schema.sequences + invocationId: sha256:310dd72f6f1f2491f33fdba09cde16346c26fa93a51996e0a7d71260fb04d9ce:0:2026-08-05T09:47:46.250741086Z:9 + precedingTxState: idle + response: + rowDescription: + - name: sequence_catalog + tableOid: 13495 + colAttrNum: 1 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: sequence_schema + tableOid: 13495 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: sequence_name + tableOid: 13495 + colAttrNum: 3 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: data_type + tableOid: 13495 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: -1 + - name: numeric_precision + tableOid: 13495 + colAttrNum: 5 + typeOid: 23 + typeSize: 4 + typeMod: -1 + - name: numeric_precision_radix + tableOid: 13495 + colAttrNum: 6 + typeOid: 23 + typeSize: 4 + typeMod: -1 + - name: numeric_scale + tableOid: 13495 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + - name: start_value + tableOid: 13495 + colAttrNum: 8 + typeOid: 1043 + typeSize: -1 + typeMod: -1 + - name: minimum_value + tableOid: 13495 + colAttrNum: 9 + typeOid: 1043 + typeSize: -1 + typeMod: -1 + - name: maximum_value + tableOid: 13495 + colAttrNum: 10 + typeOid: 1043 + typeSize: -1 + typeMod: -1 + - name: increment + tableOid: 13495 + colAttrNum: 11 + typeOid: 1043 + typeSize: -1 + typeMod: -1 + - name: cycle_option + tableOid: 13495 + colAttrNum: 12 + typeOid: 1043 + typeSize: -1 + typeMod: 7 + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:46.250741086Z + resTimestampMock: 2026-08-05T09:47:46.256930503Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-40 +spec: + metadata: + class: CATALOG + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: CATALOG + lifetime: session + sqlAstHash: sha256:3415713d7702e09dde25ce7a909e13e28677566d5a38fa8d24e5cae553ad30ed + sqlNormalized: "SELECT current_database() AS \"TABLE_CAT\", n.nspname AS \"TABLE_SCHEM\", c.relname AS \"TABLE_NAME\", CASE n.nspname ~ $3 OR n.nspname = $4 WHEN $5 THEN CASE WHEN n.nspname = $6 OR n.nspname = $7 THEN CASE c.relkind WHEN $8 THEN $9 WHEN $10 THEN $11 WHEN $12 THEN $13 ELSE $14 END WHEN n.nspname = $15 THEN CASE c.relkind WHEN $16 THEN $17 WHEN $18 THEN $19 ELSE $20 END ELSE CASE c.relkind WHEN $21 THEN $22 WHEN $23 THEN $24 WHEN $25 THEN $26 WHEN $27 THEN $28 WHEN $29 THEN $30 ELSE $31 END END WHEN $32 THEN CASE c.relkind WHEN $33 THEN $34 WHEN $35 THEN $36 WHEN $37 THEN $38 WHEN $39 then $40 WHEN $41 THEN $42 WHEN $43 THEN $44 WHEN $45 THEN $46 WHEN $47 THEN $48 WHEN $49 THEN $50 ELSE $51 END ELSE $52 END AS \"TABLE_TYPE\", d.description AS \"REMARKS\", $53 as \"TYPE_CAT\", $54 as \"TYPE_SCHEM\", $55 as \"TYPE_NAME\", $56 AS \"SELF_REFERENCING_COL_NAME\", $57 AS \"REF_GENERATION\" FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid AND d.objsubid = $58 and d.classoid = $59::regclass) WHERE c.relnamespace = n.oid AND n.nspname LIKE $1 AND c.relname LIKE $2 AND ($60 OR ( c.relkind = $61 AND n.nspname !~ $62 AND n.nspname <> $63 ) OR ( c.relkind = $64 AND n.nspname <> $65 AND n.nspname <> $66 ) OR ( c.relkind = $67 ) OR ( c.relkind = $68 AND n.nspname !~ $69 AND n.nspname <> $70 ) ) ORDER BY \"TABLE_TYPE\",\"TABLE_SCHEM\",\"TABLE_NAME\" " + paramOids: + - 1043 + - 1043 + invocationId: sha256:3415713d7702e09dde25ce7a909e13e28677566d5a38fa8d24e5cae553ad30ed:0:2026-08-05T09:47:46.26900892Z:10 + precedingTxState: idle + bindValues: + - !!binary cHVibGlj + - !!binary JQ== + bindFormats: + - 0 + - 0 + response: + rowDescription: + - name: TABLE_CAT + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: TABLE_SCHEM + tableOid: 2615 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: TABLE_NAME + tableOid: 1259 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: TABLE_TYPE + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: REMARKS + tableOid: 2609 + colAttrNum: 4 + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: TYPE_CAT + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: TYPE_SCHEM + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: TYPE_NAME + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: SELF_REFERENCING_COL_NAME + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: REF_GENERATION + typeOid: 25 + typeSize: -1 + typeMod: -1 + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:46.26900892Z + resTimestampMock: 2026-08-05T09:47:46.273099336Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-41 +spec: + metadata: + class: CATALOG + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: CATALOG + lifetime: session + sqlAstHash: sha256:f6cb238ae2fa5e21bdfb322ef234c2e2f41a4aa2036237b49fc8d3499cf3f108 + sqlNormalized: "SELECT * FROM (SELECT current_database() AS current_database, n.nspname,c.relname,a.attname,a.atttypid,a.attnotnull OR (t.typtype = $3 AND t.typnotnull) AS attnotnull,a.atttypmod,a.attlen,t.typtypmod,row_number() OVER (PARTITION BY a.attrelid ORDER BY a.attnum) AS attnum, nullif(a.attidentity, $4) as attidentity,nullif(a.attgenerated, $5) as attgenerated,pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS adsrc,dsc.description,t.typbasetype,t.typtype FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_class c ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (a.attrelid=c.oid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) LEFT JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid) LEFT JOIN pg_catalog.pg_class dc ON (dc.oid=dsc.classoid AND dc.relname=$6) LEFT JOIN pg_catalog.pg_namespace dn ON (dc.relnamespace=dn.oid AND dn.nspname=$7) WHERE c.relkind in ($8,$9,$10,$11,$12) and a.attnum > $13 AND NOT a.attisdropped AND n.nspname LIKE $1) c WHERE $14 AND attname LIKE $2 ORDER BY nspname,c.relname,attnum " + paramOids: + - 1043 + - 1043 + invocationId: sha256:f6cb238ae2fa5e21bdfb322ef234c2e2f41a4aa2036237b49fc8d3499cf3f108:0:2026-08-05T09:47:46.275015711Z:11 + precedingTxState: idle + bindValues: + - !!binary cHVibGlj + - !!binary JQ== + bindFormats: + - 0 + - 0 + response: + rowDescription: + - name: current_database + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: nspname + tableOid: 2615 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: relname + tableOid: 1259 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: attname + tableOid: 1249 + colAttrNum: 2 + typeOid: 19 + typeSize: 64 + typeMod: -1 + - name: atttypid + tableOid: 1249 + colAttrNum: 3 + typeOid: 26 + typeSize: 4 + typeMod: -1 + - name: attnotnull + typeOid: 16 + typeSize: 1 + typeMod: -1 + - name: atttypmod + tableOid: 1249 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + - name: attlen + tableOid: 1249 + colAttrNum: 4 + typeOid: 21 + typeSize: 2 + typeMod: -1 + - name: typtypmod + tableOid: 1247 + colAttrNum: 27 + typeOid: 23 + typeSize: 4 + typeMod: -1 + - name: attnum + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: attidentity + typeOid: 18 + typeSize: 1 + typeMod: -1 + - name: attgenerated + typeOid: 18 + typeSize: 1 + typeMod: -1 + - name: adsrc + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: description + tableOid: 2609 + colAttrNum: 4 + typeOid: 25 + typeSize: -1 + typeMod: -1 + - name: typbasetype + tableOid: 1247 + colAttrNum: 26 + typeOid: 26 + typeSize: 4 + typeMod: -1 + - name: typtype + tableOid: 1247 + colAttrNum: 7 + typeOid: 18 + typeSize: 1 + typeMod: -1 + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:46.275015711Z + resTimestampMock: 2026-08-05T09:47:46.280556795Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-42 +spec: + metadata: + class: DDL + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: DDL + lifetime: session + sqlAstHash: sha256:25f6e8bd80295e5521078514fb0d3ecf3c6b71d1d0b0c3c4a73d00625410afe1 + sqlNormalized: create table products (id bigint generated by default as identity, category varchar(255), created_at timestamp(6) with time zone not null, description varchar(1000), name varchar(255) not null, price numeric(12,2) not null, stock_quantity integer not null, primary key (id)) + invocationId: sha256:25f6e8bd80295e5521078514fb0d3ecf3c6b71d1d0b0c3c4a73d00625410afe1:0:2026-08-05T09:47:46.28548242Z:12 + precedingTxState: idle + response: + commandComplete: CREATE TABLE + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:46.28548242Z + resTimestampMock: 2026-08-05T09:47:46.292536003Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-43 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:50.780304755Z:13 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:50.780304755Z + resTimestampMock: 2026-08-05T09:47:50.780679005Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-44 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 + invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:50.780988672Z:14 + precedingTxState: in_tx + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:50.780988672Z + resTimestampMock: 2026-08-05T09:47:50.782420588Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-45 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:50.803576297Z:15 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:50.803576297Z + resTimestampMock: 2026-08-05T09:47:50.80382238Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-46 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.53016213Z:16 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.53016213Z + resTimestampMock: 2026-08-05T09:47:51.530547422Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-47 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 + invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:51.53024938Z:17 + precedingTxState: in_tx + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.53024938Z + resTimestampMock: 2026-08-05T09:47:51.530576005Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-48 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.531850505Z:18 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.531850505Z + resTimestampMock: 2026-08-05T09:47:51.532013339Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-49 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.787011297Z:19 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.787011297Z + resTimestampMock: 2026-08-05T09:47:51.787262089Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-50 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.787114006Z:20 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS43NjUyMjcrMDA= + - !!binary NjUlIGhvdC1zd2FwcGFibGU= + - !!binary TWVjaGFuaWNhbCBLZXlib2FyZA== + - !!binary AAIAAAAAAAIAgSas + - !!binary AAAAKA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 1 + - peripherals + - 2026-08-05T09:47:51.765227Z + - 65% hot-swappable + - Mechanical Keyboard + - int: "12999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 40 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.787114006Z + resTimestampMock: 2026-08-05T09:47:51.788629672Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-51 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.805250297Z:21 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.805250297Z + resTimestampMock: 2026-08-05T09:47:51.806122964Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-52 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.846806297Z:22 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.846806297Z + resTimestampMock: 2026-08-05T09:47:51.847021714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-53 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.846853214Z:23 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44NDYxNDQrMDA= + - !!binary Ny1pbi0xIGFsdW1pbml1bQ== + - !!binary VVNCLUMgSHVi + - !!binary AAIAAAAAAAIAJxOI + - !!binary AAAAZA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 2 + - peripherals + - 2026-08-05T09:47:51.846144Z + - 7-in-1 aluminium + - USB-C Hub + - int: "3950" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 100 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.846853214Z + resTimestampMock: 2026-08-05T09:47:51.847352464Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-54 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.848557047Z:24 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.848557047Z + resTimestampMock: 2026-08-05T09:47:51.849289756Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-55 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.874993547Z:25 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.874993547Z + resTimestampMock: 2026-08-05T09:47:51.875160631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-56 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.875052589Z:26 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44NzQ0ODUrMDA= + - !!binary ZXJnb25vbWljLCAyLjRHSHo= + - !!binary V2lyZWxlc3MgTW91c2U= + - !!binary AAIAAAAAAAIAGCas + - !!binary AAAAlg== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 3 + - peripherals + - 2026-08-05T09:47:51.874485Z + - ergonomic, 2.4GHz + - Wireless Mouse + - int: "2499" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 150 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.875052589Z + resTimestampMock: 2026-08-05T09:47:51.875578589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-57 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.876463214Z:27 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.876463214Z + resTimestampMock: 2026-08-05T09:47:51.876863589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-58 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.899540756Z:28 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.899540756Z + resTimestampMock: 2026-08-05T09:47:51.899755047Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-59 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.899644047Z:29 + precedingTxState: in_tx + bindValues: + - !!binary bW9uaXRvcnM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44OTkwMiswMA== + - !!binary SVBTLCA2MEh6 + - !!binary MjctaW5jaCA0SyBNb25pdG9y + - !!binary AAEAAAAAAAIBSQ== + - !!binary AAAAGQ== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 4 + - monitors + - 2026-08-05T09:47:51.89902Z + - IPS, 60Hz + - 27-inch 4K Monitor + - int: "32900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 25 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.899644047Z + resTimestampMock: 2026-08-05T09:47:51.900056381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-60 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.901056964Z:30 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.901056964Z + resTimestampMock: 2026-08-05T09:47:51.901623672Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-61 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.927394506Z:31 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.927394506Z + resTimestampMock: 2026-08-05T09:47:51.927707672Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-62 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.927955881Z:32 + precedingTxState: in_tx + bindValues: + - !!binary bW9uaXRvcnM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45MjY4NzErMDA= + - !!binary Y3VydmVkLCAxNDRIeg== + - !!binary MzQtaW5jaCBVbHRyYXdpZGUgTW9uaXRvcg== + - !!binary AAEAAAAAAAICVw== + - !!binary AAAADA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 5 + - monitors + - 2026-08-05T09:47:51.926871Z + - curved, 144Hz + - 34-inch Ultrawide Monitor + - int: "59900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 12 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.927955881Z + resTimestampMock: 2026-08-05T09:47:51.928482631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-63 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.929394922Z:33 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.929394922Z + resTimestampMock: 2026-08-05T09:47:51.929871672Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-64 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.954718922Z:34 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.954718922Z + resTimestampMock: 2026-08-05T09:47:51.954918714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-65 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.955141339Z:35 + precedingTxState: in_tx + bindValues: + - !!binary YWNjZXNzb3JpZXM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45NTQxNzMrMDA= + - !!binary YWx1bWluaXVtLCBhZGp1c3RhYmxl + - !!binary TGFwdG9wIFN0YW5k + - !!binary AAIAAAAAAAIAIiUc + - !!binary AAAAUA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 6 + - accessories + - 2026-08-05T09:47:51.954173Z + - aluminium, adjustable + - Laptop Stand + - int: "3495" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 80 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.955141339Z + resTimestampMock: 2026-08-05T09:47:51.955490881Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-66 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.956543881Z:36 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.956543881Z + resTimestampMock: 2026-08-05T09:47:51.957036714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-67 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.983776297Z:37 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.983776297Z + resTimestampMock: 2026-08-05T09:47:51.983953589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-68 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.984144964Z:38 + precedingTxState: in_tx + bindValues: + - !!binary YXVkaW8= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45ODMxMTgrMDA= + - !!binary b3Zlci1lYXIsIEJUIDUuMw== + - !!binary Tm9pc2UtQ2FuY2VsbGluZyBIZWFkcGhvbmVz + - !!binary AAIAAAAAAAIAxyas + - !!binary AAAAPA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 7 + - audio + - 2026-08-05T09:47:51.983118Z + - over-ear, BT 5.3 + - Noise-Cancelling Headphones + - int: "19999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 60 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.984144964Z + resTimestampMock: 2026-08-05T09:47:51.984652089Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-69 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.986374172Z:39 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:51.986374172Z + resTimestampMock: 2026-08-05T09:47:51.986955381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-70 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.010536297Z:40 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.010536297Z + resTimestampMock: 2026-08-05T09:47:52.010699547Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-71 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.010881381Z:41 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wMDk5ODQrMDA= + - !!binary YXV0by1mb2N1cw== + - !!binary MTA4MHAgV2ViY2Ft + - !!binary AAEAAAAAAAIAOw== + - !!binary AAAALQ== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 8 + - peripherals + - 2026-08-05T09:47:52.009984Z + - auto-focus + - 1080p Webcam + - int: "5900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 45 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.010881381Z + resTimestampMock: 2026-08-05T09:47:52.011236797Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-72 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.012713256Z:42 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.012713256Z + resTimestampMock: 2026-08-05T09:47:52.013349797Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-73 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.036972131Z:43 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.036972131Z + resTimestampMock: 2026-08-05T09:47:52.037153256Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-74 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.037338381Z:44 + precedingTxState: in_tx + bindValues: + - !!binary c3RvcmFnZQ== + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wMzY0OSswMA== + - !!binary VVNCIDMuMiBHZW4y + - !!binary RXh0ZXJuYWwgU1NEIDFUQg== + - !!binary AAIAAAAAAAIAbSas + - !!binary AAAARg== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 9 + - storage + - 2026-08-05T09:47:52.03649Z + - USB 3.2 Gen2 + - External SSD 1TB + - int: "10999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 70 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.037338381Z + resTimestampMock: 2026-08-05T09:47:52.037771422Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-75 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.038676297Z:45 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.038676297Z + resTimestampMock: 2026-08-05T09:47:52.039111381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-76 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.071624256Z:46 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.071624256Z + resTimestampMock: 2026-08-05T09:47:52.071948631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-77 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.073007214Z:47 + precedingTxState: in_tx + bindValues: + - !!binary YWNjZXNzb3JpZXM= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wNzA4ODYrMDA= + - !!binary OTAweDQwMG1t + - !!binary RGVzayBNYXQgWEw= + - !!binary AAIAAAAAAAIAEyas + - !!binary AAAAyA== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 10 + - accessories + - 2026-08-05T09:47:52.070886Z + - 900x400mm + - Desk Mat XL + - int: "1999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 200 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.073007214Z + resTimestampMock: 2026-08-05T09:47:52.073631089Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-78 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.074974964Z:48 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.074974964Z + resTimestampMock: 2026-08-05T09:47:52.075522881Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-79 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.099390297Z:49 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.099390297Z + resTimestampMock: 2026-08-05T09:47:52.099634006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-80 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.099786506Z:50 + precedingTxState: in_tx + bindValues: + - !!binary YXVkaW8= + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wOTg4OTIrMDA= + - !!binary Y2FyZGlvaWQsIHBsdWctYW5kLXBsYXk= + - !!binary VVNCIE1pY3JvcGhvbmU= + - !!binary AAEAAAAAAAIAWQ== + - !!binary AAAAIw== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 11 + - audio + - 2026-08-05T09:47:52.098892Z + - cardioid, plug-and-play + - USB Microphone + - int: "8900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 35 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.099786506Z + resTimestampMock: 2026-08-05T09:47:52.100031006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-81 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.101206172Z:51 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.101206172Z + resTimestampMock: 2026-08-05T09:47:52.101822422Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-82 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.124860964Z:52 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.124860964Z + resTimestampMock: 2026-08-05T09:47:52.125029506Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-83 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6 + sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *" + paramOids: + - 1043 + - 0 + - 1043 + - 1043 + - 1700 + - 23 + invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.125194089Z:53 + precedingTxState: in_tx + bindValues: + - !!binary Y29tcHV0ZXJz + - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4xMjQzOTUrMDA= + - !!binary MTZHQiBSQU0sIDUxMkdCIFNTRA== + - !!binary MTQtaW5jaCBMYXB0b3A= + - !!binary AAEAAAAAAAIESw== + - !!binary AAAADw== + bindFormats: + - 0 + - 0 + - 0 + - 0 + - 1 + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 12 + - computers + - 2026-08-05T09:47:52.124395Z + - 16GB RAM, 512GB SSD + - 14-inch Laptop + - int: "109900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 15 + commandComplete: INSERT 0 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.125194089Z + resTimestampMock: 2026-08-05T09:47:52.125414131Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-84 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.126122381Z:54 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.126122381Z + resTimestampMock: 2026-08-05T09:47:52.126669589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-85 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.159523631Z:55 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.159523631Z + resTimestampMock: 2026-08-05T09:47:52.159831297Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-86 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 + invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:52.159595547Z:56 + precedingTxState: in_tx + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 1 + - peripherals + - 2026-08-05T09:47:51.765227Z + - 65% hot-swappable + - Mechanical Keyboard + - int: "12999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 40 + - - 2 + - peripherals + - 2026-08-05T09:47:51.846144Z + - 7-in-1 aluminium + - USB-C Hub + - int: "3950" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 100 + - - 3 + - peripherals + - 2026-08-05T09:47:51.874485Z + - ergonomic, 2.4GHz + - Wireless Mouse + - int: "2499" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 150 + - - 4 + - monitors + - 2026-08-05T09:47:51.89902Z + - IPS, 60Hz + - 27-inch 4K Monitor + - int: "32900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 25 + - - 5 + - monitors + - 2026-08-05T09:47:51.926871Z + - curved, 144Hz + - 34-inch Ultrawide Monitor + - int: "59900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 12 + - - 6 + - accessories + - 2026-08-05T09:47:51.954173Z + - aluminium, adjustable + - Laptop Stand + - int: "3495" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 80 + - - 7 + - audio + - 2026-08-05T09:47:51.983118Z + - over-ear, BT 5.3 + - Noise-Cancelling Headphones + - int: "19999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 60 + - - 8 + - peripherals + - 2026-08-05T09:47:52.009984Z + - auto-focus + - 1080p Webcam + - int: "5900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 45 + - - 9 + - storage + - 2026-08-05T09:47:52.03649Z + - USB 3.2 Gen2 + - External SSD 1TB + - int: "10999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 70 + - - 10 + - accessories + - 2026-08-05T09:47:52.070886Z + - 900x400mm + - Desk Mat XL + - int: "1999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 200 + - - 11 + - audio + - 2026-08-05T09:47:52.098892Z + - cardioid, plug-and-play + - USB Microphone + - int: "8900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 35 + - - 12 + - computers + - 2026-08-05T09:47:52.124395Z + - 16GB RAM, 512GB SSD + - 14-inch Laptop + - int: "109900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 15 + commandComplete: SELECT 12 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.159595547Z + resTimestampMock: 2026-08-05T09:47:52.160122464Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-87 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.168045006Z:57 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.168045006Z + resTimestampMock: 2026-08-05T09:47:52.168381381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-88 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.195834422Z:58 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.195834422Z + resTimestampMock: 2026-08-05T09:47:52.196092214Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-89 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.195893464Z:59 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAE= + bindFormats: + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 1 + - peripherals + - 2026-08-05T09:47:51.765227Z + - 65% hot-swappable + - Mechanical Keyboard + - int: "12999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 40 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.195893464Z + resTimestampMock: 2026-08-05T09:47:52.196562089Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-90 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.198370797Z:60 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.198370797Z + resTimestampMock: 2026-08-05T09:47:52.198645381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-91 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.221113714Z:61 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.221113714Z + resTimestampMock: 2026-08-05T09:47:52.221480922Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-92 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.221113714Z:62 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAI= + bindFormats: + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 2 + - peripherals + - 2026-08-05T09:47:51.846144Z + - 7-in-1 aluminium + - USB-C Hub + - int: "3950" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 100 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.221113714Z + resTimestampMock: 2026-08-05T09:47:52.221878464Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-93 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.223755339Z:63 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.223755339Z + resTimestampMock: 2026-08-05T09:47:52.223997714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-94 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.243478422Z:64 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.243478422Z + resTimestampMock: 2026-08-05T09:47:52.243762881Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-95 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.243478422Z:65 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAM= + bindFormats: + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 3 + - peripherals + - 2026-08-05T09:47:51.874485Z + - ergonomic, 2.4GHz + - Wireless Mouse + - int: "2499" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 150 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.243478422Z + resTimestampMock: 2026-08-05T09:47:52.244070422Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-96 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.245532089Z:66 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.245532089Z + resTimestampMock: 2026-08-05T09:47:52.245880297Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-97 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.270558881Z:67 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.270558881Z + resTimestampMock: 2026-08-05T09:47:52.270953047Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-98 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.270684797Z:68 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAQ= + bindFormats: + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 4 + - monitors + - 2026-08-05T09:47:51.89902Z + - IPS, 60Hz + - 27-inch 4K Monitor + - int: "32900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 25 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.270684797Z + resTimestampMock: 2026-08-05T09:47:52.271191256Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-99 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.272488214Z:69 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.272488214Z + resTimestampMock: 2026-08-05T09:47:52.272787422Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-100 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.292355464Z:70 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.292355464Z + resTimestampMock: 2026-08-05T09:47:52.292603964Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-101 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.292355464Z:71 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAU= + bindFormats: + - 1 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 5 + - monitors + - 2026-08-05T09:47:51.926871Z + - curved, 144Hz + - 34-inch Ultrawide Monitor + - int: "59900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 12 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.292355464Z + resTimestampMock: 2026-08-05T09:47:52.292859006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-102 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.293906839Z:72 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.293906839Z + resTimestampMock: 2026-08-05T09:47:52.294176172Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-103 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.312949714Z:73 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.312949714Z + resTimestampMock: 2026-08-05T09:47:52.313142631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-104 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.312949714Z:74 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAY= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 6 + - format: 0 + bytes: + - 97 + - 99 + - 99 + - 101 + - 115 + - 115 + - 111 + - 114 + - 105 + - 101 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 0 + - 174 + - 253 + - format: 0 + bytes: + - 97 + - 108 + - 117 + - 109 + - 105 + - 110 + - 105 + - 117 + - 109 + - 44 + - 32 + - 97 + - 100 + - 106 + - 117 + - 115 + - 116 + - 97 + - 98 + - 108 + - 101 + - format: 0 + bytes: + - 76 + - 97 + - 112 + - 116 + - 111 + - 112 + - 32 + - 83 + - 116 + - 97 + - 110 + - 100 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 34 + - 37 + - 28 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 80 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.312949714Z + resTimestampMock: 2026-08-05T09:47:52.313411464Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-105 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.315344298Z:75 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.315344298Z + resTimestampMock: 2026-08-05T09:47:52.315613714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-106 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.334785673Z:76 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.334785673Z + resTimestampMock: 2026-08-05T09:47:52.334995589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-107 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.334785673Z:77 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAc= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 7 + - format: 0 + bytes: + - 97 + - 117 + - 100 + - 105 + - 111 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 32 + - 14 + - format: 0 + bytes: + - 111 + - 118 + - 101 + - 114 + - 45 + - 101 + - 97 + - 114 + - 44 + - 32 + - 66 + - 84 + - 32 + - 53 + - 46 + - 51 + - format: 0 + bytes: + - 78 + - 111 + - 105 + - 115 + - 101 + - 45 + - 67 + - 97 + - 110 + - 99 + - 101 + - 108 + - 108 + - 105 + - 110 + - 103 + - 32 + - 72 + - 101 + - 97 + - 100 + - 112 + - 104 + - 111 + - 110 + - 101 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 199 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 60 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.334785673Z + resTimestampMock: 2026-08-05T09:47:52.335133048Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-108 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.336072756Z:78 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.336072756Z + resTimestampMock: 2026-08-05T09:47:52.336480714Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-109 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.356610923Z:79 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.356610923Z + resTimestampMock: 2026-08-05T09:47:52.356857839Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-110 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.356676256Z:80 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAg= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 8 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 137 + - 0 + - format: 0 + bytes: + - 97 + - 117 + - 116 + - 111 + - 45 + - 102 + - 111 + - 99 + - 117 + - 115 + - format: 0 + bytes: + - 49 + - 48 + - 56 + - 48 + - 112 + - 32 + - 87 + - 101 + - 98 + - 99 + - 97 + - 109 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 59 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 45 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.356676256Z + resTimestampMock: 2026-08-05T09:47:52.357077923Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-111 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.358663506Z:81 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.358663506Z + resTimestampMock: 2026-08-05T09:47:52.358935214Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-112 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.380234173Z:82 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.380234173Z + resTimestampMock: 2026-08-05T09:47:52.380468089Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-113 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.380234173Z:83 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAk= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 9 + - format: 0 + bytes: + - 115 + - 116 + - 111 + - 114 + - 97 + - 103 + - 101 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 240 + - 138 + - format: 0 + bytes: + - 85 + - 83 + - 66 + - 32 + - 51 + - 46 + - 50 + - 32 + - 71 + - 101 + - 110 + - 50 + - format: 0 + bytes: + - 69 + - 120 + - 116 + - 101 + - 114 + - 110 + - 97 + - 108 + - 32 + - 83 + - 83 + - 68 + - 32 + - 49 + - 84 + - 66 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 109 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 70 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.380234173Z + resTimestampMock: 2026-08-05T09:47:52.380658298Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-114 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.382541006Z:84 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.382541006Z + resTimestampMock: 2026-08-05T09:47:52.382889839Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-115 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.402408131Z:85 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.402408131Z + resTimestampMock: 2026-08-05T09:47:52.402641589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-116 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.402408131Z:86 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAo= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 10 + - format: 0 + bytes: + - 97 + - 99 + - 99 + - 101 + - 115 + - 115 + - 111 + - 114 + - 105 + - 101 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 2 + - 118 + - 230 + - format: 0 + bytes: + - 57 + - 48 + - 48 + - 120 + - 52 + - 48 + - 48 + - 109 + - 109 + - format: 0 + bytes: + - 68 + - 101 + - 115 + - 107 + - 32 + - 77 + - 97 + - 116 + - 32 + - 88 + - 76 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 19 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 200 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.402408131Z + resTimestampMock: 2026-08-05T09:47:52.402836214Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-117 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.403602673Z:87 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.403602673Z + resTimestampMock: 2026-08-05T09:47:52.403778798Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-118 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.420297798Z:88 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.420297798Z + resTimestampMock: 2026-08-05T09:47:52.420576214Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-119 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.420297798Z:89 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAs= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 11 + - format: 0 + bytes: + - 97 + - 117 + - 100 + - 105 + - 111 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 2 + - 228 + - 76 + - format: 0 + bytes: + - 99 + - 97 + - 114 + - 100 + - 105 + - 111 + - 105 + - 100 + - 44 + - 32 + - 112 + - 108 + - 117 + - 103 + - 45 + - 97 + - 110 + - 100 + - 45 + - 112 + - 108 + - 97 + - 121 + - format: 0 + bytes: + - 85 + - 83 + - 66 + - 32 + - 77 + - 105 + - 99 + - 114 + - 111 + - 112 + - 104 + - 111 + - 110 + - 101 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 89 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 35 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.420297798Z + resTimestampMock: 2026-08-05T09:47:52.420634006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-120 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.421350964Z:90 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.421350964Z + resTimestampMock: 2026-08-05T09:47:52.421532298Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-121 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.440228339Z:91 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.440228339Z + resTimestampMock: 2026-08-05T09:47:52.440481589Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-122 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.440293881Z:92 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAw= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 12 + - format: 0 + bytes: + - 99 + - 111 + - 109 + - 112 + - 117 + - 116 + - 101 + - 114 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 3 + - 71 + - 235 + - format: 0 + bytes: + - 49 + - 54 + - 71 + - 66 + - 32 + - 82 + - 65 + - 77 + - 44 + - 32 + - 53 + - 49 + - 50 + - 71 + - 66 + - 32 + - 83 + - 83 + - 68 + - format: 0 + bytes: + - 49 + - 52 + - 45 + - 105 + - 110 + - 99 + - 104 + - 32 + - 76 + - 97 + - 112 + - 116 + - 111 + - 112 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 4 + - 75 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 15 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.440293881Z + resTimestampMock: 2026-08-05T09:47:52.440614006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-123 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.441577548Z:93 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:52.441577548Z + resTimestampMock: 2026-08-05T09:47:52.441740881Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-124 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.285848048Z:94 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.285848048Z + resTimestampMock: 2026-08-05T09:47:53.286273506Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-125 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.285848048Z:95 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + bindFormats: + - 0 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 1 + - peripherals + - 2026-08-05T09:47:51.765227Z + - 65% hot-swappable + - Mechanical Keyboard + - int: "12999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 40 + - - 2 + - peripherals + - 2026-08-05T09:47:51.846144Z + - 7-in-1 aluminium + - USB-C Hub + - int: "3950" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 100 + - - 3 + - peripherals + - 2026-08-05T09:47:51.874485Z + - ergonomic, 2.4GHz + - Wireless Mouse + - int: "2499" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 150 + - - 8 + - peripherals + - 2026-08-05T09:47:52.009984Z + - auto-focus + - 1080p Webcam + - int: "5900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 45 + commandComplete: SELECT 4 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.285848048Z + resTimestampMock: 2026-08-05T09:47:53.287752631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-126 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.292936715Z:96 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.292936715Z + resTimestampMock: 2026-08-05T09:47:53.293351798Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-127 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.327865715Z:97 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.327865715Z + resTimestampMock: 2026-08-05T09:47:53.328346548Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-128 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.327987173Z:98 + precedingTxState: in_tx + bindValues: + - !!binary bW9uaXRvcnM= + bindFormats: + - 0 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 4 + - monitors + - 2026-08-05T09:47:51.89902Z + - IPS, 60Hz + - 27-inch 4K Monitor + - int: "32900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 25 + - - 5 + - monitors + - 2026-08-05T09:47:51.926871Z + - curved, 144Hz + - 34-inch Ultrawide Monitor + - int: "59900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 12 + commandComplete: SELECT 2 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.327987173Z + resTimestampMock: 2026-08-05T09:47:53.328826465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-129 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.331302006Z:99 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.331302006Z + resTimestampMock: 2026-08-05T09:47:53.331622881Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-130 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.361986715Z:100 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.361986715Z + resTimestampMock: 2026-08-05T09:47:53.362320173Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-131 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.361986715Z:101 + precedingTxState: in_tx + bindValues: + - !!binary YWNjZXNzb3JpZXM= + bindFormats: + - 0 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 6 + - accessories + - 2026-08-05T09:47:51.954173Z + - aluminium, adjustable + - Laptop Stand + - int: "3495" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 80 + - - 10 + - accessories + - 2026-08-05T09:47:52.070886Z + - 900x400mm + - Desk Mat XL + - int: "1999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 200 + commandComplete: SELECT 2 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.361986715Z + resTimestampMock: 2026-08-05T09:47:53.362649548Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-132 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.364096673Z:102 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.364096673Z + resTimestampMock: 2026-08-05T09:47:53.364345631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-133 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.396563131Z:103 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.396563131Z + resTimestampMock: 2026-08-05T09:47:53.396907215Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-134 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.396563131Z:104 + precedingTxState: in_tx + bindValues: + - !!binary YXVkaW8= + bindFormats: + - 0 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 7 + - audio + - 2026-08-05T09:47:51.983118Z + - over-ear, BT 5.3 + - Noise-Cancelling Headphones + - int: "19999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 60 + - - 11 + - audio + - 2026-08-05T09:47:52.098892Z + - cardioid, plug-and-play + - USB Microphone + - int: "8900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 35 + commandComplete: SELECT 2 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.396563131Z + resTimestampMock: 2026-08-05T09:47:53.397424215Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-135 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.401017548Z:105 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.401017548Z + resTimestampMock: 2026-08-05T09:47:53.401327298Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-136 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.441049256Z:106 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.441049256Z + resTimestampMock: 2026-08-05T09:47:53.441517631Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-137 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.441169673Z:107 + precedingTxState: in_tx + bindValues: + - !!binary c3RvcmFnZQ== + bindFormats: + - 0 + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 9 + - storage + - 2026-08-05T09:47:52.03649Z + - USB 3.2 Gen2 + - External SSD 1TB + - int: "10999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 70 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.441169673Z + resTimestampMock: 2026-08-05T09:47:53.442449465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-138 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.444660381Z:108 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.444660381Z + resTimestampMock: 2026-08-05T09:47:53.444951715Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-139 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.475390298Z:109 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.475390298Z + resTimestampMock: 2026-08-05T09:47:53.475745256Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-140 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.475508256Z:110 + precedingTxState: in_tx + bindValues: + - !!binary Y29tcHV0ZXJz + bindFormats: + - 0 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 12 + - format: 0 + bytes: + - 99 + - 111 + - 109 + - 112 + - 117 + - 116 + - 101 + - 114 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 3 + - 71 + - 235 + - format: 0 + bytes: + - 49 + - 54 + - 71 + - 66 + - 32 + - 82 + - 65 + - 77 + - 44 + - 32 + - 53 + - 49 + - 50 + - 71 + - 66 + - 32 + - 83 + - 83 + - 68 + - format: 0 + bytes: + - 49 + - 52 + - 45 + - 105 + - 110 + - 99 + - 104 + - 32 + - 76 + - 97 + - 112 + - 116 + - 111 + - 112 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 4 + - 75 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 15 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.475508256Z + resTimestampMock: 2026-08-05T09:47:53.476110715Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-141 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.478050381Z:111 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.478050381Z + resTimestampMock: 2026-08-05T09:47:53.478459048Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-142 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.505831715Z:112 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.505831715Z + resTimestampMock: 2026-08-05T09:47:53.50614084Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-143 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.505831715Z:113 + precedingTxState: in_tx + bindValues: + - !!binary Z2FtaW5n + bindFormats: + - 0 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.505831715Z + resTimestampMock: 2026-08-05T09:47:53.506370798Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-144 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.507533215Z:114 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.507533215Z + resTimestampMock: 2026-08-05T09:47:53.507875548Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-145 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.53589159Z:115 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.53589159Z + resTimestampMock: 2026-08-05T09:47:53.53631684Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-146 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.53589159Z:116 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAE= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 1 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 253 + - 204 + - 235 + - format: 0 + bytes: + - 54 + - 53 + - 37 + - 32 + - 104 + - 111 + - 116 + - 45 + - 115 + - 119 + - 97 + - 112 + - 112 + - 97 + - 98 + - 108 + - 101 + - format: 0 + bytes: + - 77 + - 101 + - 99 + - 104 + - 97 + - 110 + - 105 + - 99 + - 97 + - 108 + - 32 + - 75 + - 101 + - 121 + - 98 + - 111 + - 97 + - 114 + - 100 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 129 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 40 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.53589159Z + resTimestampMock: 2026-08-05T09:47:53.536561381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-147 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee + sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6 + paramOids: + - 1043 + - 1043 + - 1043 + - 1700 + - 23 + - 20 + invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.55347709Z:117 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + - !!binary NzUlIGxheW91dCwgUkdC + - !!binary TWVjaGFuaWNhbCBLZXlib2FyZCB2Mg== + - !!binary AAIAAAAAAAIAlSas + - !!binary AAAAIw== + - !!binary AAAAAAAAAAE= + bindFormats: + - 0 + - 0 + - 0 + - 1 + - 1 + - 1 + response: + commandComplete: UPDATE 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.55347709Z + resTimestampMock: 2026-08-05T09:47:53.554577756Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-148 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.557576881Z:118 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.557576881Z + resTimestampMock: 2026-08-05T09:47:53.558660381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-149 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.583517923Z:119 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.583517923Z + resTimestampMock: 2026-08-05T09:47:53.583812006Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-150 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.583612631Z:120 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAE= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 1 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 253 + - 204 + - 235 + - format: 0 + bytes: + - 55 + - 53 + - 37 + - 32 + - 108 + - 97 + - 121 + - 111 + - 117 + - 116 + - 44 + - 32 + - 82 + - 71 + - 66 + - format: 0 + bytes: + - 77 + - 101 + - 99 + - 104 + - 97 + - 110 + - 105 + - 99 + - 97 + - 108 + - 32 + - 75 + - 101 + - 121 + - 98 + - 111 + - 97 + - 114 + - 100 + - 32 + - 118 + - 50 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 149 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 35 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.583612631Z + resTimestampMock: 2026-08-05T09:47:53.584026673Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-151 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.585078506Z:121 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.585078506Z + resTimestampMock: 2026-08-05T09:47:53.585348381Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-152 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.610412923Z:122 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.610412923Z + resTimestampMock: 2026-08-05T09:47:53.61072809Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-153 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.610412923Z:123 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAQ= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 4 + - format: 0 + bytes: + - 109 + - 111 + - 110 + - 105 + - 116 + - 111 + - 114 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 255 + - 215 + - 140 + - format: 0 + bytes: + - 73 + - 80 + - 83 + - 44 + - 32 + - 54 + - 48 + - 72 + - 122 + - format: 0 + bytes: + - 50 + - 55 + - 45 + - 105 + - 110 + - 99 + - 104 + - 32 + - 52 + - 75 + - 32 + - 77 + - 111 + - 110 + - 105 + - 116 + - 111 + - 114 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 1 + - 73 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 25 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.610412923Z + resTimestampMock: 2026-08-05T09:47:53.610776215Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-154 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee + sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6 + paramOids: + - 1043 + - 1043 + - 1043 + - 1700 + - 23 + - 20 + invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.61306284Z:124 + precedingTxState: in_tx + bindValues: + - !!binary bW9uaXRvcnM= + - !!binary SVBTLCA2MEh6LCBIRFI0MDA= + - !!binary MjctaW5jaCA0SyBNb25pdG9y + - !!binary AAEAAAAAAAIBKw== + - !!binary AAAAHg== + - !!binary AAAAAAAAAAQ= + bindFormats: + - 0 + - 0 + - 0 + - 1 + - 1 + - 1 + response: + commandComplete: UPDATE 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.61306284Z + resTimestampMock: 2026-08-05T09:47:53.613768423Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-155 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.614161673Z:125 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.614161673Z + resTimestampMock: 2026-08-05T09:47:53.614913465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-156 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.635515006Z:126 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.635515006Z + resTimestampMock: 2026-08-05T09:47:53.635742256Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-157 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.635581965Z:127 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAQ= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 4 + - format: 0 + bytes: + - 109 + - 111 + - 110 + - 105 + - 116 + - 111 + - 114 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 255 + - 215 + - 140 + - format: 0 + bytes: + - 73 + - 80 + - 83 + - 44 + - 32 + - 54 + - 48 + - 72 + - 122 + - 44 + - 32 + - 72 + - 68 + - 82 + - 52 + - 48 + - 48 + - format: 0 + bytes: + - 50 + - 55 + - 45 + - 105 + - 110 + - 99 + - 104 + - 32 + - 52 + - 75 + - 32 + - 77 + - 111 + - 110 + - 105 + - 116 + - 111 + - 114 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 1 + - 43 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 30 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.635581965Z + resTimestampMock: 2026-08-05T09:47:53.635869173Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-158 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.636747631Z:128 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.636747631Z + resTimestampMock: 2026-08-05T09:47:53.636959506Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-159 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.658563673Z:129 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.658563673Z + resTimestampMock: 2026-08-05T09:47:53.65875184Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-160 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.658563673Z:130 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAc= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 7 + - format: 0 + bytes: + - 97 + - 117 + - 100 + - 105 + - 111 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 32 + - 14 + - format: 0 + bytes: + - 111 + - 118 + - 101 + - 114 + - 45 + - 101 + - 97 + - 114 + - 44 + - 32 + - 66 + - 84 + - 32 + - 53 + - 46 + - 51 + - format: 0 + bytes: + - 78 + - 111 + - 105 + - 115 + - 101 + - 45 + - 67 + - 97 + - 110 + - 99 + - 101 + - 108 + - 108 + - 105 + - 110 + - 103 + - 32 + - 72 + - 101 + - 97 + - 100 + - 112 + - 104 + - 111 + - 110 + - 101 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 199 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 60 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.658563673Z + resTimestampMock: 2026-08-05T09:47:53.658882173Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-161 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee + sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6 + paramOids: + - 1043 + - 1043 + - 1043 + - 1700 + - 23 + - 20 + invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.660541715Z:131 + precedingTxState: in_tx + bindValues: + - !!binary YXVkaW8= + - !!binary b3Zlci1lYXIsIEJUIDUuMywgQU5DKw== + - !!binary Tm9pc2UtQ2FuY2VsbGluZyBIZWFkcGhvbmVzIFBybw== + - !!binary AAIAAAAAAAIA+Sas + - !!binary AAAAMg== + - !!binary AAAAAAAAAAc= + bindFormats: + - 0 + - 0 + - 0 + - 1 + - 1 + - 1 + response: + commandComplete: UPDATE 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.660541715Z + resTimestampMock: 2026-08-05T09:47:53.66103009Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-162 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.661380965Z:132 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.661380965Z + resTimestampMock: 2026-08-05T09:47:53.662077923Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-163 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.67993934Z:133 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.67993934Z + resTimestampMock: 2026-08-05T09:47:53.680127465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-164 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.67993934Z:134 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAc= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 7 + - format: 0 + bytes: + - 97 + - 117 + - 100 + - 105 + - 111 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 32 + - 14 + - format: 0 + bytes: + - 111 + - 118 + - 101 + - 114 + - 45 + - 101 + - 97 + - 114 + - 44 + - 32 + - 66 + - 84 + - 32 + - 53 + - 46 + - 51 + - 44 + - 32 + - 65 + - 78 + - 67 + - 43 + - format: 0 + bytes: + - 78 + - 111 + - 105 + - 115 + - 101 + - 45 + - 67 + - 97 + - 110 + - 99 + - 101 + - 108 + - 108 + - 105 + - 110 + - 103 + - 32 + - 72 + - 101 + - 97 + - 100 + - 112 + - 104 + - 111 + - 110 + - 101 + - 115 + - 32 + - 80 + - 114 + - 111 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 249 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 50 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.67993934Z + resTimestampMock: 2026-08-05T09:47:53.68026109Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-165 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.681175006Z:135 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.681175006Z + resTimestampMock: 2026-08-05T09:47:53.68139184Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-166 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.700873548Z:136 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.700873548Z + resTimestampMock: 2026-08-05T09:47:53.70106509Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-167 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.700873548Z:137 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAM= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 3 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 255 + - 119 + - 181 + - format: 0 + bytes: + - 101 + - 114 + - 103 + - 111 + - 110 + - 111 + - 109 + - 105 + - 99 + - 44 + - 32 + - 50 + - 46 + - 52 + - 71 + - 72 + - 122 + - format: 0 + bytes: + - 87 + - 105 + - 114 + - 101 + - 108 + - 101 + - 115 + - 115 + - 32 + - 77 + - 111 + - 117 + - 115 + - 101 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 24 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 150 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.700873548Z + resTimestampMock: 2026-08-05T09:47:53.701242506Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-168 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412 + sqlNormalized: delete from products where id=$1 + paramOids: + - 20 + invocationId: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412:0:2026-08-05T09:47:53.70749034Z:138 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAM= + bindFormats: + - 1 + response: + commandComplete: DELETE 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.70749034Z + resTimestampMock: 2026-08-05T09:47:53.70785459Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-169 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.709303381Z:139 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.709303381Z + resTimestampMock: 2026-08-05T09:47:53.709823215Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-170 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.728023965Z:140 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.728023965Z + resTimestampMock: 2026-08-05T09:47:53.72825309Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-171 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.728023965Z:141 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAo= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 10 + - format: 0 + bytes: + - 97 + - 99 + - 99 + - 101 + - 115 + - 115 + - 111 + - 114 + - 105 + - 101 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 2 + - 118 + - 230 + - format: 0 + bytes: + - 57 + - 48 + - 48 + - 120 + - 52 + - 48 + - 48 + - 109 + - 109 + - format: 0 + bytes: + - 68 + - 101 + - 115 + - 107 + - 32 + - 77 + - 97 + - 116 + - 32 + - 88 + - 76 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 19 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 200 + commandComplete: SELECT 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.728023965Z + resTimestampMock: 2026-08-05T09:47:53.72844359Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-172 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412 + sqlNormalized: delete from products where id=$1 + paramOids: + - 20 + invocationId: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412:0:2026-08-05T09:47:53.729839382Z:142 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAo= + bindFormats: + - 1 + response: + commandComplete: DELETE 1 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.729839382Z + resTimestampMock: 2026-08-05T09:47:53.73016509Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-173 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.730443715Z:143 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.730443715Z + resTimestampMock: 2026-08-05T09:47:53.730947298Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-174 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.749170382Z:144 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.749170382Z + resTimestampMock: 2026-08-05T09:47:53.749365173Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-175 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 + invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:53.749170382Z:145 + precedingTxState: in_tx + response: + rowDescription: + - name: id + tableOid: 16386 + colAttrNum: 1 + typeOid: 20 + typeSize: 8 + typeMod: -1 + - name: category + tableOid: 16386 + colAttrNum: 2 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: created_at + tableOid: 16386 + colAttrNum: 3 + typeOid: 1184 + typeSize: 8 + typeMod: 6 + - name: description + tableOid: 16386 + colAttrNum: 4 + typeOid: 1043 + typeSize: -1 + typeMod: 1004 + - name: name + tableOid: 16386 + colAttrNum: 5 + typeOid: 1043 + typeSize: -1 + typeMod: 259 + - name: price + tableOid: 16386 + colAttrNum: 6 + typeOid: 1700 + typeSize: -1 + typeMod: 786438 + - name: stock_quantity + tableOid: 16386 + colAttrNum: 7 + typeOid: 23 + typeSize: 4 + typeMod: -1 + rows: + - - 2 + - peripherals + - 2026-08-05T09:47:51.846144Z + - 7-in-1 aluminium + - USB-C Hub + - int: "3950" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 100 + - - 5 + - monitors + - 2026-08-05T09:47:51.926871Z + - curved, 144Hz + - 34-inch Ultrawide Monitor + - int: "59900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 12 + - - 6 + - accessories + - 2026-08-05T09:47:51.954173Z + - aluminium, adjustable + - Laptop Stand + - int: "3495" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 80 + - - 8 + - peripherals + - 2026-08-05T09:47:52.009984Z + - auto-focus + - 1080p Webcam + - int: "5900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 45 + - - 9 + - storage + - 2026-08-05T09:47:52.03649Z + - USB 3.2 Gen2 + - External SSD 1TB + - int: "10999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 70 + - - 11 + - audio + - 2026-08-05T09:47:52.098892Z + - cardioid, plug-and-play + - USB Microphone + - int: "8900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 35 + - - 12 + - computers + - 2026-08-05T09:47:52.124395Z + - 16GB RAM, 512GB SSD + - 14-inch Laptop + - int: "109900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 15 + - - 1 + - peripherals + - 2026-08-05T09:47:51.765227Z + - 75% layout, RGB + - Mechanical Keyboard v2 + - int: "14999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 35 + - - 4 + - monitors + - 2026-08-05T09:47:51.89902Z + - IPS, 60Hz, HDR400 + - 27-inch 4K Monitor + - int: "29900" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 30 + - - 7 + - audio + - 2026-08-05T09:47:51.983118Z + - over-ear, BT 5.3, ANC+ + - Noise-Cancelling Headphones Pro + - int: "24999" + exp: -2 + nan: false + infinitymodifier: 0 + valid: true + - 50 + commandComplete: SELECT 10 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.749170382Z + resTimestampMock: 2026-08-05T09:47:53.749575757Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-176 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.752051423Z:146 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.752051423Z + resTimestampMock: 2026-08-05T09:47:53.75227384Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-177 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.772014673Z:147 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.772014673Z + resTimestampMock: 2026-08-05T09:47:53.772234465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-178 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1) + paramOids: + - 1043 + invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.772068173Z:148 + precedingTxState: in_tx + bindValues: + - !!binary cGVyaXBoZXJhbHM= + bindFormats: + - 0 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + rows: + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 255 + - 9 + - 0 + - format: 0 + bytes: + - 55 + - 45 + - 105 + - 110 + - 45 + - 49 + - 32 + - 97 + - 108 + - 117 + - 109 + - 105 + - 110 + - 105 + - 117 + - 109 + - format: 0 + bytes: + - 85 + - 83 + - 66 + - 45 + - 67 + - 32 + - 72 + - 117 + - 98 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 39 + - 19 + - 136 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 100 + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 8 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 111 + - 1 + - 137 + - 0 + - format: 0 + bytes: + - 97 + - 117 + - 116 + - 111 + - 45 + - 102 + - 111 + - 99 + - 117 + - 115 + - format: 0 + bytes: + - 49 + - 48 + - 56 + - 48 + - 112 + - 32 + - 87 + - 101 + - 98 + - 99 + - 97 + - 109 + - format: 1 + bytes: + - 0 + - 1 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 59 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 45 + - - format: 1 + bytes: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 1 + - format: 0 + bytes: + - 112 + - 101 + - 114 + - 105 + - 112 + - 104 + - 101 + - 114 + - 97 + - 108 + - 115 + - format: 1 + bytes: + - 0 + - 2 + - 251 + - 72 + - 110 + - 253 + - 204 + - 235 + - format: 0 + bytes: + - 55 + - 53 + - 37 + - 32 + - 108 + - 97 + - 121 + - 111 + - 117 + - 116 + - 44 + - 32 + - 82 + - 71 + - 66 + - format: 0 + bytes: + - 77 + - 101 + - 99 + - 104 + - 97 + - 110 + - 105 + - 99 + - 97 + - 108 + - 32 + - 75 + - 101 + - 121 + - 98 + - 111 + - 97 + - 114 + - 100 + - 32 + - 118 + - 50 + - format: 1 + bytes: + - 0 + - 2 + - 0 + - 0 + - 0 + - 0 + - 0 + - 2 + - 0 + - 149 + - 38 + - 172 + - format: 1 + bytes: + - 0 + - 0 + - 0 + - 35 + commandComplete: SELECT 3 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.772068173Z + resTimestampMock: 2026-08-05T09:47:53.772437048Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-179 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439 + sqlNormalized: COMMIT + invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.773943215Z:149 + precedingTxState: in_tx + response: + commandComplete: COMMIT + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.773943215Z + resTimestampMock: 2026-08-05T09:47:53.774121382Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-180 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.792323548Z:150 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.792323548Z + resTimestampMock: 2026-08-05T09:47:53.79256559Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-181 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.792379507Z:151 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAABhp8= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.792379507Z + resTimestampMock: 2026-08-05T09:47:53.792659465Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-182 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338 + sqlNormalized: ROLLBACK + invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.794472507Z:152 + precedingTxState: in_tx + response: + commandComplete: ROLLBACK + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.794472507Z + resTimestampMock: 2026-08-05T09:47:53.794685382Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-183 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN READ ONLY + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.829325465Z:153 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.829325465Z + resTimestampMock: 2026-08-05T09:47:53.829579132Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-184 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.829325465Z:154 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAAAAAM= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.829325465Z + resTimestampMock: 2026-08-05T09:47:53.829910548Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-185 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338 + sqlNormalized: ROLLBACK + invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.830953048Z:155 + precedingTxState: in_tx + response: + commandComplete: ROLLBACK + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.830953048Z + resTimestampMock: 2026-08-05T09:47:53.831279882Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-186 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.859003257Z:156 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.859003257Z + resTimestampMock: 2026-08-05T09:47:53.859167173Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-187 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.859003257Z:157 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAABhp8= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.859003257Z + resTimestampMock: 2026-08-05T09:47:53.859485257Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-188 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338 + sqlNormalized: ROLLBACK + invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.860457257Z:158 + precedingTxState: in_tx + response: + commandComplete: ROLLBACK + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.860457257Z + resTimestampMock: 2026-08-05T09:47:53.860685298Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-189 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8 + sqlNormalized: BEGIN + invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.887539632Z:159 + precedingTxState: idle + response: + commandComplete: BEGIN + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.887539632Z + resTimestampMock: 2026-08-05T09:47:53.887927007Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-190 +spec: + metadata: + class: APP + connID: "0" + lifetime: perTest + type: mocks + postgresV3: + type: query + query: + class: APP + lifetime: perTest + sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65 + sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1 + paramOids: + - 20 + invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.887699757Z:160 + precedingTxState: in_tx + bindValues: + - !!binary AAAAAAABWzg= + bindFormats: + - 1 + resultFormats: + - 1 + - 0 + - 1 + - 0 + - 0 + - 1 + - 1 + response: + commandComplete: SELECT 0 + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.887699757Z + resTimestampMock: 2026-08-05T09:47:53.888236507Z +connectionId: "0" +--- +version: api.keploy.io/v1beta1 +kind: PostgresV3 +name: mock-191 +spec: + metadata: + class: TX + connID: "0" + lifetime: session + type: config + postgresV3: + type: query + query: + class: TX + lifetime: session + sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338 + sqlNormalized: ROLLBACK + invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.890536173Z:161 + precedingTxState: in_tx + response: + commandComplete: ROLLBACK + sideEffects: {} + reqTimestampMock: 2026-08-05T09:47:53.890536173Z + resTimestampMock: 2026-08-05T09:47:53.891141007Z +connectionId: "0" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml new file mode 100644 index 00000000..de290f46 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml @@ -0,0 +1,38 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: delete-api-products-by-id-1 +spec: + metadata: {} + req: + method: DELETE + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/3 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.698135506Z + resp: + status_code: 204 + header: + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: "" + status_message: No Content + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.710849131Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request DELETE \ + --url http://localhost:8080/api/products/3 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml new file mode 100644 index 00000000..54e8968c --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml @@ -0,0 +1,38 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: delete-api-products-by-id-2 +spec: + metadata: {} + req: + method: DELETE + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/10 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.725833715Z + resp: + status_code: 204 + header: + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: "" + status_message: No Content + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.731937465Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request DELETE \ + --url http://localhost:8080/api/products/10 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml new file mode 100644 index 00000000..7b5f6a2e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml @@ -0,0 +1,39 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: delete-api-products-by-id-3 +spec: + metadata: {} + req: + method: DELETE + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/88888 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.88451309Z + resp: + status_code: 404 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"status":404,"error":"Not Found","message":"Product 88888 not found"}' + status_message: Not Found + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.895310048Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request DELETE \ + --url http://localhost:8080/api/products/88888 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml new file mode 100644 index 00000000..5765e6f6 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml @@ -0,0 +1,40 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-1 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:50.537493172Z + resp: + status_code: 200 + header: + Content-Length: "2" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:50 GMT + body: '[]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:50.877519505Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923270 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml new file mode 100644 index 00000000..fa3d9708 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml @@ -0,0 +1,42 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-10 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=gaming + url_params: + category: gaming + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.501016506Z + resp: + status_code: 200 + header: + Content-Length: "2" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.509852131Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=gaming \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml new file mode 100644 index 00000000..5f0d80bc --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-11 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.746177298Z + resp: + status_code: 200 + header: + Content-Length: "1688" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"},{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.753919215Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml new file mode 100644 index 00000000..015f0e3a --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-12 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=peripherals + url_params: + category: peripherals + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.768925215Z + resp: + status_code: 200 + header: + Content-Length: "495" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.775661173Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=peripherals \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml new file mode 100644 index 00000000..3e5537b6 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml @@ -0,0 +1,40 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-2 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:51.521124089Z + resp: + status_code: 200 + header: + Content-Length: "2" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + body: '[]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.53549213Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml new file mode 100644 index 00000000..cff23b1b --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-3 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.154889047Z + resp: + status_code: 200 + header: + Content-Length: "1995" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.171077881Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml new file mode 100644 index 00000000..48e2f1fb --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-4 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=peripherals + url_params: + category: peripherals + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.457445881Z + resp: + status_code: 200 + header: + Content-Length: "662" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.296947215Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=peripherals \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml new file mode 100644 index 00000000..dcfe7dbd --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-5 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=monitors + url_params: + category: monitors + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.322897381Z + resp: + status_code: 200 + header: + Content-Length: "334" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.335293298Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=monitors \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml new file mode 100644 index 00000000..d1dc8838 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-6 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=accessories + url_params: + category: accessories + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.35743609Z + resp: + status_code: 200 + header: + Content-Length: "328" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.366932381Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=accessories \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml new file mode 100644 index 00000000..e271b86c --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-7 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=audio + url_params: + category: audio + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.391164006Z + resp: + status_code: 200 + header: + Content-Length: "343" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.404990215Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=audio \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml new file mode 100644 index 00000000..85e01f6c --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-8 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=storage + url_params: + category: storage + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.434172256Z + resp: + status_code: 200 + header: + Content-Length: "162" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.447671381Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=storage \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml new file mode 100644 index 00000000..0d650fa8 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-9 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products?category=computers + url_params: + category: computers + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.470989423Z + resp: + status_code: 200 + header: + Content-Length: "171" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '[{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}]' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.481041423Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products?category=computers \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml new file mode 100644 index 00000000..a9ee54c8 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-1 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/1 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.185836922Z + resp: + status_code: 200 + header: + Content-Length: "172" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.201007881Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/1 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml new file mode 100644 index 00000000..51f29e5f --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-10 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/10 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.400153756Z + resp: + status_code: 200 + header: + Content-Length: "157" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.405178131Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/10 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml new file mode 100644 index 00000000..80817bd8 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-11 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/11 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.418193756Z + resp: + status_code: 200 + header: + Content-Length: "167" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.422992298Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/11 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml new file mode 100644 index 00000000..d63773d2 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-12 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/12 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.437791714Z + resp: + status_code: 200 + header: + Content-Length: "169" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.443282839Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/12 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml new file mode 100644 index 00000000..330955c0 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-13 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/1 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.580774631Z + resp: + status_code: 200 + header: + Content-Length: "173" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.58791659Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/1 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml new file mode 100644 index 00000000..0544c1f5 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-14 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/4 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.63297659Z + resp: + status_code: 200 + header: + Content-Length: "168" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.639081715Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/4 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml new file mode 100644 index 00000000..7bf8133d --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-15 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/7 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.677868673Z + resp: + status_code: 200 + header: + Content-Length: "183" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.682846923Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/7 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml new file mode 100644 index 00000000..5c534d5e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml @@ -0,0 +1,39 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-16 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/99999 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.790304173Z + resp: + status_code: 404 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"status":404,"error":"Not Found","message":"Product 99999 not found"}' + status_message: Not Found + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.802322215Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/99999 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml new file mode 100644 index 00000000..c6be1d6e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml @@ -0,0 +1,39 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-17 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/3 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:53.826713048Z + resp: + status_code: 404 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"status":404,"error":"Not Found","message":"Product 3 not found"}' + status_message: Not Found + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.833839715Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/3 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml new file mode 100644 index 00000000..05e18290 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-2 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/2 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.218142839Z + resp: + status_code: 200 + header: + Content-Length: "161" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.225559256Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/2 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml new file mode 100644 index 00000000..c36261eb --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-3 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/3 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.241119839Z + resp: + status_code: 200 + header: + Content-Length: "167" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.248298756Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/3 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml new file mode 100644 index 00000000..af40bfac --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-4 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/4 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.266444297Z + resp: + status_code: 200 + header: + Content-Length: "160" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.274799339Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/4 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml new file mode 100644 index 00000000..9841bdbb --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-5 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/5 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.290074339Z + resp: + status_code: 200 + header: + Content-Length: "171" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.295790714Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/5 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml new file mode 100644 index 00000000..e4636794 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-6 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/6 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.310882131Z + resp: + status_code: 200 + header: + Content-Length: "168" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.317869589Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/6 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml new file mode 100644 index 00000000..b3ec0943 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-7 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/7 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.332076006Z + resp: + status_code: 200 + header: + Content-Length: "173" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.339043381Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/7 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml new file mode 100644 index 00000000..9e6a96ae --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-8 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/8 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.354425131Z + resp: + status_code: 200 + header: + Content-Length: "157" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.361916798Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/8 \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml new file mode 100644 index 00000000..a89be607 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml @@ -0,0 +1,41 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: get-api-products-by-id-9 +spec: + metadata: {} + req: + method: GET + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/9 + header: + Accept: '*/*' + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: "" + timestamp: 2026-08-05T09:47:52.377573214Z + resp: + status_code: 200 + header: + Content-Length: "160" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + body: '{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.384753506Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: | + curl --request GET \ + --url http://localhost:8080/api/products/9 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Host: localhost:8080' \ diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml new file mode 100644 index 00000000..10f4bff7 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-1 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "123" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals"}' + timestamp: 2026-08-05T09:47:51.548846714Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/1 + body: '{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765226797Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.819094672Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"Mechanical Keyboard\",\"description\":\"65% hot-swappable\",\"price\":129.99,\"stockQuantity\":40,\"category\":\"peripherals\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml new file mode 100644 index 00000000..1ca9a162 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-10 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "107" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories"}' + timestamp: 2026-08-05T09:47:52.067824464Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + Location: http://localhost:8080/api/products/10 + body: '{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886256Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.077852464Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"Desk Mat XL\",\"description\":\"900x400mm\",\"price\":19.99,\"stockQuantity\":200,\"category\":\"accessories\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml new file mode 100644 index 00000000..4131d9b3 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-11 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "117" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio"}' + timestamp: 2026-08-05T09:47:52.096539714Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + Location: http://localhost:8080/api/products/11 + body: '{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892339Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.103579839Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"USB Microphone\",\"description\":\"cardioid, plug-and-play\",\"price\":89.00,\"stockQuantity\":35,\"category\":\"audio\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml new file mode 100644 index 00000000..5002192d --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-12 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "119" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers"}' + timestamp: 2026-08-05T09:47:52.122036589Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + Location: http://localhost:8080/api/products/12 + body: '{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395089Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.128115672Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"14-inch Laptop\",\"description\":\"16GB RAM, 512GB SSD\",\"price\":1099.00,\"stockQuantity\":15,\"category\":\"computers\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml new file mode 100644 index 00000000..5ca642e9 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-13 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "58" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"","price":10.00,"stockQuantity":5,"category":"x"}' + timestamp: 2026-08-05T09:47:53.929578215Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.986531548Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"\",\"price\":10.00,\"stockQuantity\":5,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml new file mode 100644 index 00000000..bde4f6dd --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-14 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "48" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"price":10.00,"stockQuantity":5,"category":"x"}' + timestamp: 2026-08-05T09:47:54.027501798Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.046613798Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"price\":10.00,\"stockQuantity\":5,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml new file mode 100644 index 00000000..b7185408 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-15 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "61" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Bad","price":-5.00,"stockQuantity":5,"category":"x"}' + timestamp: 2026-08-05T09:47:54.093201173Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price must be greater than 0"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.098682173Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"Bad\",\"price\":-5.00,\"stockQuantity\":5,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml new file mode 100644 index 00000000..a7b3701e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-16 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "57" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Bad","price":0,"stockQuantity":5,"category":"x"}' + timestamp: 2026-08-05T09:47:54.150084507Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price must be greater than 0"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.180859632Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"Bad\",\"price\":0,\"stockQuantity\":5,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml new file mode 100644 index 00000000..ceb61766 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-17 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "47" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Bad","stockQuantity":5,"category":"x"}' + timestamp: 2026-08-05T09:47:54.444558924Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price is required"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.516463799Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"Bad\",\"stockQuantity\":5,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml new file mode 100644 index 00000000..10b6d6ac --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-18 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "43" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Bad","price":10.00,"category":"x"}' + timestamp: 2026-08-05T09:47:54.597930799Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"stockQuantity":"stockQuantity is required"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.686418507Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --data "{\"name\":\"Bad\",\"price\":10.00,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml new file mode 100644 index 00000000..f577b160 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-19 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "62" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Bad","price":10.00,"stockQuantity":-3,"category":"x"}' + timestamp: 2026-08-05T09:47:54.859669382Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:54 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"stockQuantity":"stockQuantity cannot be negative"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:54.873243215Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923274 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"Bad\",\"price\":10.00,\"stockQuantity\":-3,\"category\":\"x\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml new file mode 100644 index 00000000..149ed65e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-2 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "112" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals"}' + timestamp: 2026-08-05T09:47:51.843145381Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/2 + body: '{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144422Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.851579964Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"USB-C Hub\",\"description\":\"7-in-1 aluminium\",\"price\":39.50,\"stockQuantity\":100,\"category\":\"peripherals\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml new file mode 100644 index 00000000..8c2d1e58 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-20 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "22" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"","price":-1}' + timestamp: 2026-08-05T09:47:55.167565091Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:55 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required","price":"price must be greater than 0","stockQuantity":"stockQuantity is required"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:55.185959341Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923275 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"\",\"price\":-1}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml new file mode 100644 index 00000000..f872dc7a --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-3 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "118" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals"}' + timestamp: 2026-08-05T09:47:51.872038464Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/3 + body: '{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874484756Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.878511047Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"Wireless Mouse\",\"description\":\"ergonomic, 2.4GHz\",\"price\":24.99,\"stockQuantity\":150,\"category\":\"peripherals\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml new file mode 100644 index 00000000..7fd14875 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-4 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "111" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors"}' + timestamp: 2026-08-05T09:47:51.896657797Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/4 + body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020172Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.905879172Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"27-inch 4K Monitor\",\"description\":\"IPS, 60Hz\",\"price\":329.00,\"stockQuantity\":25,\"category\":\"monitors\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml new file mode 100644 index 00000000..1c2e05bf --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-5 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "122" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors"}' + timestamp: 2026-08-05T09:47:51.924524964Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/5 + body: '{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871339Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.931618881Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"34-inch Ultrawide Monitor\",\"description\":\"curved, 144Hz\",\"price\":599.00,\"stockQuantity\":12,\"category\":\"monitors\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml new file mode 100644 index 00000000..4665bfa8 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-6 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "119" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories"}' + timestamp: 2026-08-05T09:47:51.951356922Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/6 + body: '{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173172Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.958699839Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"Laptop Stand\",\"description\":\"aluminium, adjustable\",\"price\":34.95,\"stockQuantity\":80,\"category\":\"accessories\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml new file mode 100644 index 00000000..b25e48a9 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-7 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "124" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio"}' + timestamp: 2026-08-05T09:47:51.980774881Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:51 GMT + Location: http://localhost:8080/api/products/7 + body: '{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983117881Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:51.988569464Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923271 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --data "{\"name\":\"Noise-Cancelling Headphones\",\"description\":\"over-ear, BT 5.3\",\"price\":199.99,\"stockQuantity\":60,\"category\":\"audio\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml new file mode 100644 index 00000000..a868896e --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-8 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "108" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals"}' + timestamp: 2026-08-05T09:47:52.007203756Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + Location: http://localhost:8080/api/products/8 + body: '{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009983547Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.015268089Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"1080p Webcam\",\"description\":\"auto-focus\",\"price\":59.00,\"stockQuantity\":45,\"category\":\"peripherals\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml new file mode 100644 index 00000000..6e88e97d --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: post-api-products-9 +spec: + metadata: {} + req: + method: POST + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products + header: + Accept: '*/*' + Content-Length: "111" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage"}' + timestamp: 2026-08-05T09:47:52.033960297Z + resp: + status_code: 201 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:52 GMT + Location: http://localhost:8080/api/products/9 + body: '{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490172Z"}' + status_message: Created + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:52.041113256Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923272 + app_port: 8080 +curl: |- + curl --request POST \ + --url http://localhost:8080/api/products \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"External SSD 1TB\",\"description\":\"USB 3.2 Gen2\",\"price\":109.99,\"stockQuantity\":70,\"category\":\"storage\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml new file mode 100644 index 00000000..af00c885 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: put-api-products-by-id-1 +spec: + metadata: {} + req: + method: PUT + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/1 + header: + Accept: '*/*' + Content-Length: "124" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals"}' + timestamp: 2026-08-05T09:47:53.529595548Z + resp: + status_code: 200 + header: + Content-Length: "173" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.561551006Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: |- + curl --request PUT \ + --url http://localhost:8080/api/products/1 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"Mechanical Keyboard v2\",\"description\":\"75% layout, RGB\",\"price\":149.99,\"stockQuantity\":35,\"category\":\"peripherals\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml new file mode 100644 index 00000000..cdfb4124 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: put-api-products-by-id-2 +spec: + metadata: {} + req: + method: PUT + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/4 + header: + Accept: '*/*' + Content-Length: "119" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors"}' + timestamp: 2026-08-05T09:47:53.60642484Z + resp: + status_code: 200 + header: + Content-Length: "168" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.616671256Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: |- + curl --request PUT \ + --url http://localhost:8080/api/products/4 \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --data "{\"name\":\"27-inch 4K Monitor\",\"description\":\"IPS, 60Hz, HDR400\",\"price\":299.00,\"stockQuantity\":30,\"category\":\"monitors\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml new file mode 100644 index 00000000..05cda562 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml @@ -0,0 +1,45 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: put-api-products-by-id-3 +spec: + metadata: {} + req: + method: PUT + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/7 + header: + Accept: '*/*' + Content-Length: "134" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio"}' + timestamp: 2026-08-05T09:47:53.65540834Z + resp: + status_code: 200 + header: + Content-Length: "183" + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}' + status_message: OK + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.663728173Z + objects: [] + assertions: + noise: + body.createdAt: [] + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: |- + curl --request PUT \ + --url http://localhost:8080/api/products/7 \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"Noise-Cancelling Headphones Pro\",\"description\":\"over-ear, BT 5.3, ANC+\",\"price\":249.99,\"stockQuantity\":50,\"category\":\"audio\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml new file mode 100644 index 00000000..770fd7b3 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: put-api-products-by-id-4 +spec: + metadata: {} + req: + method: PUT + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/99999 + header: + Accept: '*/*' + Content-Length: "65" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"ghost","price":1.00,"stockQuantity":1,"category":"none"}' + timestamp: 2026-08-05T09:47:53.855836007Z + resp: + status_code: 404 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:53 GMT + body: '{"status":404,"error":"Not Found","message":"Product 99999 not found"}' + status_message: Not Found + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:53.862450007Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923273 + app_port: 8080 +curl: |- + curl --request PUT \ + --url http://localhost:8080/api/products/99999 \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --data "{\"name\":\"ghost\",\"price\":1.00,\"stockQuantity\":1,\"category\":\"none\"}" diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml new file mode 100644 index 00000000..11ae4dc2 --- /dev/null +++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml @@ -0,0 +1,43 @@ +# Generated by Keploy (3.5.95) +version: api.keploy.io/v1beta1 +kind: Http +name: put-api-products-by-id-5 +spec: + metadata: {} + req: + method: PUT + proto_major: 1 + proto_minor: 1 + url: http://localhost:8080/api/products/1 + header: + Accept: '*/*' + Content-Length: "41" + Content-Type: application/json + Host: localhost:8080 + User-Agent: curl/8.7.1 + body: '{"name":"","price":-9,"stockQuantity":-1}' + timestamp: 2026-08-05T09:47:55.249904674Z + resp: + status_code: 400 + header: + Content-Type: application/json + Date: Wed, 05 Aug 2026 09:47:55 GMT + body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required","price":"price must be greater than 0","stockQuantity":"stockQuantity cannot be negative"}}' + status_message: Bad Request + proto_major: 0 + proto_minor: 0 + timestamp: 2026-08-05T09:47:55.262067632Z + objects: [] + assertions: + noise: + header.Date: [] + created: 1785923275 + app_port: 8080 +curl: |- + curl --request PUT \ + --url http://localhost:8080/api/products/1 \ + --header 'Content-Type: application/json' \ + --header 'Host: localhost:8080' \ + --header 'User-Agent: curl/8.7.1' \ + --header 'Accept: */*' \ + --data "{\"name\":\"\",\"price\":-9,\"stockQuantity\":-1}" diff --git a/spring-boot-product-catalog/mvnw b/spring-boot-product-catalog/mvnw new file mode 100755 index 00000000..bd8896bf --- /dev/null +++ b/spring-boot-product-catalog/mvnw @@ -0,0 +1,295 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.4 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/spring-boot-product-catalog/mvnw.cmd b/spring-boot-product-catalog/mvnw.cmd new file mode 100644 index 00000000..92450f93 --- /dev/null +++ b/spring-boot-product-catalog/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/spring-boot-product-catalog/pom.xml b/spring-boot-product-catalog/pom.xml new file mode 100644 index 00000000..57560e1a --- /dev/null +++ b/spring-boot-product-catalog/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.1.0 + + + io.keploy + product-catalog + 0.0.1-SNAPSHOT + product-catalog + Spring Boot + PostgreSQL product catalog REST API, used as a Keploy record-and-replay sample + + 21 + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-webmvc + + + + org.postgresql + postgresql + runtime + + + org.springframework.boot + spring-boot-starter-actuator-test + test + + + org.springframework.boot + spring-boot-starter-data-jpa-test + test + + + org.springframework.boot + spring-boot-starter-validation-test + test + + + org.springframework.boot + spring-boot-starter-webmvc-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/spring-boot-product-catalog/seed.sh b/spring-boot-product-catalog/seed.sh new file mode 100755 index 00000000..bf786a2f --- /dev/null +++ b/spring-boot-product-catalog/seed.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash +# Traffic generator for Keploy recording. +# +# Drives the Product Catalog API through a rich, realistic workload so the recorded +# Keploy suite is broad: ~50 test cases covering the full CRUD lifecycle across several +# categories, filtering, and a wide range of 400 (validation) and 404 (not-found) paths. +# Ids returned by POST are chained into later GET/PUT/DELETE calls so the suite is coherent. +set -uo pipefail + +BASE="${BASE:-http://localhost:8080}" + +# --- helpers ----------------------------------------------------------------- +id_of() { grep -o '"id":[0-9]*' | head -1 | cut -d: -f2; } + +CREATED=() # ids of products created, in order + +# create '' -> prints response, appends new id to CREATED +create() { + local json="$1" body id + body=$(curl -fsS -X POST "$BASE/api/products" -H 'Content-Type: application/json' -d "$json") + echo " created: $body" + id=$(printf '%s' "$body" | id_of) + CREATED+=("$id") +} + +# expect '