diff --git a/.github/workflows/spring-boot-product-catalog.yml b/.github/workflows/spring-boot-product-catalog.yml
new file mode 100644
index 00000000..f7ec871b
--- /dev/null
+++ b/.github/workflows/spring-boot-product-catalog.yml
@@ -0,0 +1,82 @@
+# 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
+ needs: build
+ 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..e2fedcb0
--- /dev/null
+++ b/spring-boot-product-catalog/Dockerfile
@@ -0,0 +1,26 @@
+# 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. Also create a non-root user to run the JVM.
+RUN apt-get update && apt-get install -y --no-install-recommends curl \
+ && rm -rf /var/lib/apt/lists/* \
+ && addgroup --system spring && adduser --system --ingroup spring spring
+COPY --from=build /app/target/*.jar app.jar
+EXPOSE 8080
+USER spring:spring
+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..ffdd0ac1
--- /dev/null
+++ b/spring-boot-product-catalog/README.md
@@ -0,0 +1,301 @@
+# 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:
+
+- **63 test cases** covering the full CRUD lifecycle, category filtering, the inventory summary, stock adjustments, and 404/400/409 edge cases
+- **214 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 all seven endpoints — full CRUD, category filters, the
+> inventory `/summary` rollup, `/{id}/stock` adjustments (including the `409` over-decrement),
+> and the `404`/`400` paths. Re-running `keploy record` with `./seed.sh` regenerates it.
+
+## 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 63-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: 63 Passed: 63 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 # 214 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
+ ├── get-api-products-summary-*.yaml # inventory rollup (default + threshold)
+ ├── put-api-products-by-id-*.yaml # updates + invalid + 404
+ ├── patch-api-products-by-id-stock-*.yaml # stock adjust + 409 over-decrement + 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: 63 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..e38b78c3
--- /dev/null
+++ b/spring-boot-product-catalog/keploy.yml
@@ -0,0 +1,109 @@
+# 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
+ 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..188b0966
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/config.yaml
@@ -0,0 +1,10 @@
+preScript: ""
+postScript: ""
+appCommand: ""
+template: {}
+metadata:
+ description: full CRUD + filters + summary + stock + 404 + 400 validation
+ name: products-crud
+mockRegistry:
+ mock: 2517f87149abc3ccafc3d8762d703d85cc9f2f4d83e9b4fe43c7a2aed1f513e5
+ app: spring-boot-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..27f7fe21
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/mappings.yaml
@@ -0,0 +1,978 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: TestMocksMapping
+test_set_id: products-crud
+tests:
+ - id: patch-api-products-by-id-stock-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-214
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.520345388Z"
+ resTimestampMock: "2026-08-13T09:46:00.520597388Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: get-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-89
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.541106388Z"
+ resTimestampMock: "2026-08-13T09:45:59.542199221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-13
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-150
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.934575721Z"
+ resTimestampMock: "2026-08-13T09:45:59.934864846Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-122
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.717363554Z"
+ resTimestampMock: "2026-08-13T09:45:59.717544971Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-110
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.652106054Z"
+ resTimestampMock: "2026-08-13T09:45:59.652475388Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-119
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.703006429Z"
+ resTimestampMock: "2026-08-13T09:45:59.703179304Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-125
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.787801013Z"
+ resTimestampMock: "2026-08-13T09:45:59.788765221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-113
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.667092179Z"
+ resTimestampMock: "2026-08-13T09:45:59.667462929Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: put-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-160
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.978739805Z"
+ resTimestampMock: "2026-08-13T09:45:59.979050013Z"
+ - name: mock-161
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.980330721Z"
+ resTimestampMock: "2026-08-13T09:45:59.980626471Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-98
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.588257763Z"
+ resTimestampMock: "2026-08-13T09:45:59.588703346Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-140
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.879603596Z"
+ resTimestampMock: "2026-08-13T09:45:59.880145805Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-131
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.823253346Z"
+ resTimestampMock: "2026-08-13T09:45:59.823699013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-65
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.377705304Z"
+ resTimestampMock: "2026-08-13T09:45:59.378268013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: delete-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-167
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.008477805Z"
+ resTimestampMock: "2026-08-13T09:46:00.008664096Z"
+ - name: mock-168
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.012685055Z"
+ resTimestampMock: "2026-08-13T09:46:00.01297943Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-14
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-157
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.963993221Z"
+ resTimestampMock: "2026-08-13T09:45:59.964279013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: patch-api-products-by-id-stock-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-209
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.479606638Z"
+ resTimestampMock: "2026-08-13T09:46:00.479921846Z"
+ - name: mock-210
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.481882138Z"
+ resTimestampMock: "2026-08-13T09:46:00.482213555Z"
+ - name: mock-211
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.496005596Z"
+ resTimestampMock: "2026-08-13T09:46:00.496579513Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: post-api-products-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-53
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.284791221Z"
+ resTimestampMock: "2026-08-13T09:45:59.285229846Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: patch-api-products-by-id-stock-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-204
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.461620596Z"
+ resTimestampMock: "2026-08-13T09:46:00.461885346Z"
+ - name: mock-205
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.463485013Z"
+ resTimestampMock: "2026-08-13T09:46:00.463766471Z"
+ - name: mock-206
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.464294888Z"
+ resTimestampMock: "2026-08-13T09:46:00.464403971Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-175
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.050273138Z"
+ resTimestampMock: "2026-08-13T09:46:00.050609263Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-56
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.307666179Z"
+ resTimestampMock: "2026-08-13T09:45:59.308300221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: put-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-146
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.913866555Z"
+ resTimestampMock: "2026-08-13T09:45:59.914004263Z"
+ - name: mock-147
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.91978993Z"
+ resTimestampMock: "2026-08-13T09:45:59.920424013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-68
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.399967471Z"
+ resTimestampMock: "2026-08-13T09:45:59.400274346Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-15
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-164
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.993979555Z"
+ resTimestampMock: "2026-08-13T09:45:59.994307638Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: delete-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-171
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.033019513Z"
+ resTimestampMock: "2026-08-13T09:46:00.033451721Z"
+ - name: mock-172
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.034976471Z"
+ resTimestampMock: "2026-08-13T09:46:00.035378138Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: patch-api-products-by-id-stock-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-199
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.432930805Z"
+ resTimestampMock: "2026-08-13T09:46:00.433200221Z"
+ - name: mock-200
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.445759138Z"
+ resTimestampMock: "2026-08-13T09:46:00.446296763Z"
+ - name: mock-201
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.447324305Z"
+ resTimestampMock: "2026-08-13T09:46:00.44747918Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-74
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.442446721Z"
+ resTimestampMock: "2026-08-13T09:45:59.442681096Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-86
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.516738471Z"
+ resTimestampMock: "2026-08-13T09:45:59.517151804Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-104
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.621036346Z"
+ resTimestampMock: "2026-08-13T09:45:59.621431679Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-44
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.463240637Z"
+ resTimestampMock: "2026-08-13T09:45:58.464764304Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-92
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.558165638Z"
+ resTimestampMock: "2026-08-13T09:45:59.558430763Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-16
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-181
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.086245596Z"
+ resTimestampMock: "2026-08-13T09:46:00.086518805Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: get-api-products-summary-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-196
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.413012763Z"
+ resTimestampMock: "2026-08-13T09:46:00.41326593Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-71
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.421243138Z"
+ resTimestampMock: "2026-08-13T09:45:59.421645054Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-107
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.637462971Z"
+ resTimestampMock: "2026-08-13T09:45:59.637713221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-summary-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-193
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.380702263Z"
+ resTimestampMock: "2026-08-13T09:46:00.381017596Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-116
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.687381888Z"
+ resTimestampMock: "2026-08-13T09:45:59.687778554Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-178
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.069462346Z"
+ resTimestampMock: "2026-08-13T09:46:00.069844971Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-137
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.861238638Z"
+ resTimestampMock: "2026-08-13T09:45:59.861740221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-143
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.898216221Z"
+ resTimestampMock: "2026-08-13T09:45:59.898536013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-83
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.498965304Z"
+ resTimestampMock: "2026-08-13T09:45:59.499153013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-17
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-184
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.115346638Z"
+ resTimestampMock: "2026-08-13T09:46:00.115546055Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: post-api-products-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-77
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.462385096Z"
+ resTimestampMock: "2026-08-13T09:45:59.462678804Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: put-api-products-by-id-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-187
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.137730971Z"
+ resTimestampMock: "2026-08-13T09:46:00.138072513Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: post-api-products-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-80
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.480590679Z"
+ resTimestampMock: "2026-08-13T09:45:59.480760721Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-47
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.138719137Z"
+ resTimestampMock: "2026-08-13T09:45:59.139324054Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-95
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.571915888Z"
+ resTimestampMock: "2026-08-13T09:45:59.572319054Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-by-id-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-101
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.604683346Z"
+ resTimestampMock: "2026-08-13T09:45:59.604990929Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: delete-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-190
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.159081513Z"
+ resTimestampMock: "2026-08-13T09:46:00.159500138Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1786614360
+ reqTimestampMock: "2026-08-13T09:46:00.087674721Z"
+ resTimestampMock: "2026-08-13T09:46:00.087823305Z"
+ - id: post-api-products-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-50
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.242688804Z"
+ resTimestampMock: "2026-08-13T09:45:59.244165138Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-134
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.840822263Z"
+ resTimestampMock: "2026-08-13T09:45:59.841445179Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-62
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.355783513Z"
+ resTimestampMock: "2026-08-13T09:45:59.356389304Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: put-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-153
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.949134513Z"
+ resTimestampMock: "2026-08-13T09:45:59.949418721Z"
+ - name: mock-154
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.950757888Z"
+ resTimestampMock: "2026-08-13T09:45:59.951063055Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: get-api-products-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-128
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.806136971Z"
+ resTimestampMock: "2026-08-13T09:45:59.806834013Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
+ - id: post-api-products-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.462503137Z"
+ resTimestampMock: "2026-08-13T09:45:58.462900429Z"
+ - name: mock-59
+ kind: PostgresV3
+ timestamp: 1786614359
+ reqTimestampMock: "2026-08-13T09:45:59.330286721Z"
+ resTimestampMock: "2026-08-13T09:45:59.330690221Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1786614358
+ reqTimestampMock: "2026-08-13T09:45:58.478294762Z"
+ resTimestampMock: "2026-08-13T09:45:58.478561137Z"
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..106706fa
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/mocks.yaml
@@ -0,0 +1,11460 @@
+# 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-13T09:45:39.436932711Z
+ resTimestampMock: 2026-08-13T09:45:39.437430503Z
+---
+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.3"
+ reqTimestampMock: 2026-08-13T09:45:39.436932711Z
+ resTimestampMock: 2026-08-13T09:45:39.437879295Z
+---
+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-13T09:45:39.462432961Z
+ resTimestampMock: 2026-08-13T09:45:39.462815295Z
+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: 75
+ backendSecretKey: -458198094
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.46472992Z
+ resTimestampMock: 2026-08-13T09:45:39.530146836Z
+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-13T09:45:39.549475878Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.549475878Z
+ resTimestampMock: 2026-08-13T09:45:39.549988336Z
+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-13T09:45:39.558074795Z:2
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: transaction_isolation
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - read committed
+ commandComplete: SHOW
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.558074795Z
+ resTimestampMock: 2026-08-13T09:45:39.558453545Z
+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-13T09:45:39.575150461Z: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-13T09:45:39.575150461Z
+ resTimestampMock: 2026-08-13T09:45:39.577023211Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-7
+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-13T09:45:39.589070253Z: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-13T09:45:39.589070253Z
+ resTimestampMock: 2026-08-13T09:45:39.58933492Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-8
+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-13T09:45:39.601659337Z:5
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: current_schema
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ rows:
+ - - public
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.601659337Z
+ resTimestampMock: 2026-08-13T09:45:39.602068795Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-9
+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-13T09:45:39.602282128Z:6
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: current_catalog
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ rows:
+ - - catalog
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.602282128Z
+ resTimestampMock: 2026-08-13T09:45:39.602446795Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-10
+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-13T09:45:39.603158003Z: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-13T09:45:39.603158003Z
+ resTimestampMock: 2026-08-13T09:45:39.60427942Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-11
+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-13T09:45:39.604516753Z:8
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: transaction_isolation
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - read committed
+ commandComplete: SHOW
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.604516753Z
+ resTimestampMock: 2026-08-13T09:45:39.604638837Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-12
+spec:
+ metadata:
+ connID: "2"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-13T09:45:39.674804753Z
+ resTimestampMock: 2026-08-13T09:45:39.67556042Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-13
+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: 76
+ backendSecretKey: -1857667527
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.675828587Z
+ resTimestampMock: 2026-08-13T09:45:39.712329003Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-14
+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-13T09:45:39.712876837Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.712876837Z
+ resTimestampMock: 2026-08-13T09:45:39.713240837Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-15
+spec:
+ metadata:
+ connID: "4"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-13T09:45:39.746176253Z
+ resTimestampMock: 2026-08-13T09:45:39.746660628Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-16
+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: 77
+ backendSecretKey: -578951070
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.746761837Z
+ resTimestampMock: 2026-08-13T09:45:39.77446617Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-17
+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-13T09:45:39.775561837Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.775561837Z
+ resTimestampMock: 2026-08-13T09:45:39.776286045Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-18
+spec:
+ metadata:
+ connID: "6"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-13T09:45:39.80919342Z
+ resTimestampMock: 2026-08-13T09:45:39.80978692Z
+connectionId: "6"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-19
+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: 78
+ backendSecretKey: -1404647821
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.810038837Z
+ resTimestampMock: 2026-08-13T09:45:39.817861337Z
+connectionId: "6"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-20
+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-13T09:45:39.818251337Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.818251337Z
+ resTimestampMock: 2026-08-13T09:45:39.818657045Z
+connectionId: "6"
+---
+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-13T09:45:39.87255317Z
+ resTimestampMock: 2026-08-13T09:45:39.872908795Z
+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: 79
+ backendSecretKey: 1559597812
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.873070628Z
+ resTimestampMock: 2026-08-13T09:45:39.881388795Z
+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-13T09:45:39.881850795Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.881850795Z
+ resTimestampMock: 2026-08-13T09:45:39.882398045Z
+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-13T09:45:39.915181212Z
+ resTimestampMock: 2026-08-13T09:45:39.915639378Z
+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: 80
+ backendSecretKey: 1151561097
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.915707378Z
+ resTimestampMock: 2026-08-13T09:45:39.922841795Z
+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-13T09:45:39.923318087Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.923318087Z
+ resTimestampMock: 2026-08-13T09:45:39.923801045Z
+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-13T09:45:39.959078878Z
+ resTimestampMock: 2026-08-13T09:45:39.96026042Z
+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: 81
+ backendSecretKey: 1222989541
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:39.961023045Z
+ resTimestampMock: 2026-08-13T09:45:39.968325128Z
+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-13T09:45:39.968380795Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:39.968380795Z
+ resTimestampMock: 2026-08-13T09:45:39.968695587Z
+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-13T09:45:40.001712087Z
+ resTimestampMock: 2026-08-13T09:45:40.00229767Z
+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: 82
+ backendSecretKey: -740292158
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:40.002546378Z
+ resTimestampMock: 2026-08-13T09:45:40.010890337Z
+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-13T09:45:40.01210367Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:40.01210367Z
+ resTimestampMock: 2026-08-13T09:45:40.012440545Z
+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-13T09:45:40.044170503Z
+ resTimestampMock: 2026-08-13T09:45:40.04471492Z
+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: 83
+ backendSecretKey: 650859782
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:40.04488992Z
+ resTimestampMock: 2026-08-13T09:45:40.050463128Z
+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-13T09:45:40.05106092Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:40.05106092Z
+ resTimestampMock: 2026-08-13T09:45:40.051327003Z
+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-13T09:45:40.084322003Z
+ resTimestampMock: 2026-08-13T09:45:40.084735045Z
+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: 84
+ backendSecretKey: 1983525856
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-13T09:45:40.08496742Z
+ resTimestampMock: 2026-08-13T09:45:40.089722962Z
+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-13T09:45:40.090403587Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:40.090403587Z
+ resTimestampMock: 2026-08-13T09:45:40.090775628Z
+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-13T09:45:40.29334942Z: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-13T09:45:40.29334942Z
+ resTimestampMock: 2026-08-13T09:45:40.295945129Z
+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-13T09:45:40.302790337Z: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-13T09:45:40.302790337Z
+ resTimestampMock: 2026-08-13T09:45:40.306708962Z
+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-13T09:45:40.307738879Z: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-13T09:45:40.307738879Z
+ resTimestampMock: 2026-08-13T09:45:40.311350545Z
+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(120) not null, price numeric(12,2) not null, stock_quantity integer not null, primary key (id))
+ invocationId: sha256:25f6e8bd80295e5521078514fb0d3ecf3c6b71d1d0b0c3c4a73d00625410afe1:0:2026-08-13T09:45:40.313998045Z:12
+ precedingTxState: idle
+ response:
+ commandComplete: CREATE TABLE
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:40.313998045Z
+ resTimestampMock: 2026-08-13T09:45:40.317528962Z
+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-13T09:45:58.462503137Z:13
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:58.462503137Z
+ resTimestampMock: 2026-08-13T09:45:58.462900429Z
+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:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:45:58.463240637Z: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: 124
+ - 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-13T09:45:58.463240637Z
+ resTimestampMock: 2026-08-13T09:45:58.464764304Z
+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-13T09:45:58.478294762Z:15
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:58.478294762Z
+ resTimestampMock: 2026-08-13T09:45:58.478561137Z
+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-13T09:45:59.138673054Z:16
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.138673054Z
+ resTimestampMock: 2026-08-13T09:45:59.138902304Z
+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:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:45:59.138719137Z: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: 124
+ - 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-13T09:45:59.138719137Z
+ resTimestampMock: 2026-08-13T09:45:59.139324054Z
+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-13T09:45:59.140284679Z:18
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.140284679Z
+ resTimestampMock: 2026-08-13T09:45:59.140499971Z
+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-13T09:45:59.242688804Z:19
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.242688804Z
+ resTimestampMock: 2026-08-13T09:45:59.242842721Z
+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-13T09:45:59.242688804Z:20
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4yMzAwODQrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.230084Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.242688804Z
+ resTimestampMock: 2026-08-13T09:45:59.244165138Z
+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-13T09:45:59.254054888Z:21
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.254054888Z
+ resTimestampMock: 2026-08-13T09:45:59.254722221Z
+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-13T09:45:59.284791221Z:22
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.284791221Z
+ resTimestampMock: 2026-08-13T09:45:59.285037929Z
+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-13T09:45:59.284791221Z:23
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4yODQyOTgrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.284298Z
+ - 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-13T09:45:59.284791221Z
+ resTimestampMock: 2026-08-13T09:45:59.285229846Z
+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-13T09:45:59.286481221Z:24
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.286481221Z
+ resTimestampMock: 2026-08-13T09:45:59.286945638Z
+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-13T09:45:59.307609304Z:25
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.307609304Z
+ resTimestampMock: 2026-08-13T09:45:59.307816429Z
+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-13T09:45:59.307666179Z:26
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4zMDcyMTMrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.307213Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.307666179Z
+ resTimestampMock: 2026-08-13T09:45:59.308300221Z
+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-13T09:45:59.309149513Z:27
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.309149513Z
+ resTimestampMock: 2026-08-13T09:45:59.309482929Z
+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-13T09:45:59.330171596Z:28
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.330171596Z
+ resTimestampMock: 2026-08-13T09:45:59.330403971Z
+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-13T09:45:59.330286721Z:29
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4zMjk0NjUrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.329465Z
+ - 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-13T09:45:59.330286721Z
+ resTimestampMock: 2026-08-13T09:45:59.330690221Z
+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-13T09:45:59.331816471Z:30
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.331816471Z
+ resTimestampMock: 2026-08-13T09:45:59.332365429Z
+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-13T09:45:59.354995013Z:31
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.354995013Z
+ resTimestampMock: 2026-08-13T09:45:59.355278388Z
+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-13T09:45:59.355783513Z:32
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4zNTQ0OTIrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.354492Z
+ - 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-13T09:45:59.355783513Z
+ resTimestampMock: 2026-08-13T09:45:59.356389304Z
+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-13T09:45:59.357318388Z:33
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.357318388Z
+ resTimestampMock: 2026-08-13T09:45:59.357688846Z
+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-13T09:45:59.377126804Z:34
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.377126804Z
+ resTimestampMock: 2026-08-13T09:45:59.377427304Z
+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-13T09:45:59.377705304Z:35
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YWNjZXNzb3JpZXM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4zNzY1NDYrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.376546Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.377705304Z
+ resTimestampMock: 2026-08-13T09:45:59.378268013Z
+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-13T09:45:59.378951179Z:36
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.378951179Z
+ resTimestampMock: 2026-08-13T09:45:59.379725596Z
+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-13T09:45:59.399664638Z:37
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.399664638Z
+ resTimestampMock: 2026-08-13T09:45:59.399831096Z
+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-13T09:45:59.399967471Z:38
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS4zOTkyMDkrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.399209Z
+ - 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-13T09:45:59.399967471Z
+ resTimestampMock: 2026-08-13T09:45:59.400274346Z
+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-13T09:45:59.401144013Z:39
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.401144013Z
+ resTimestampMock: 2026-08-13T09:45:59.401778346Z
+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-13T09:45:59.420832346Z:40
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.420832346Z
+ resTimestampMock: 2026-08-13T09:45:59.421104804Z
+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-13T09:45:59.421243138Z:41
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS40MjA0MDQrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.420404Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.421243138Z
+ resTimestampMock: 2026-08-13T09:45:59.421645054Z
+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-13T09:45:59.422698638Z:42
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.422698638Z
+ resTimestampMock: 2026-08-13T09:45:59.423541513Z
+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-13T09:45:59.442175263Z:43
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.442175263Z
+ resTimestampMock: 2026-08-13T09:45:59.442317138Z
+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-13T09:45:59.442446721Z:44
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary c3RvcmFnZQ==
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS40NDE3OTYrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.441796Z
+ - 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-13T09:45:59.442446721Z
+ resTimestampMock: 2026-08-13T09:45:59.442681096Z
+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-13T09:45:59.443486346Z:45
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.443486346Z
+ resTimestampMock: 2026-08-13T09:45:59.443979429Z
+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-13T09:45:59.462140596Z:46
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.462140596Z
+ resTimestampMock: 2026-08-13T09:45:59.462265388Z
+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-13T09:45:59.462385096Z:47
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YWNjZXNzb3JpZXM=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS40NjE3NjErMDA=
+ - !!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: 124
+ - 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-13T09:45:59.461761Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.462385096Z
+ resTimestampMock: 2026-08-13T09:45:59.462678804Z
+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-13T09:45:59.463304596Z:48
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.463304596Z
+ resTimestampMock: 2026-08-13T09:45:59.463626263Z
+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-13T09:45:59.480373596Z:49
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.480373596Z
+ resTimestampMock: 2026-08-13T09:45:59.480495221Z
+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-13T09:45:59.480590679Z:50
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS40ODAwMjkrMDA=
+ - !!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: 124
+ - 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-13T09:45:59.480029Z
+ - 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-13T09:45:59.480590679Z
+ resTimestampMock: 2026-08-13T09:45:59.480760721Z
+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-13T09:45:59.481380138Z:51
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.481380138Z
+ resTimestampMock: 2026-08-13T09:45:59.481716263Z
+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-13T09:45:59.498687846Z:52
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.498687846Z
+ resTimestampMock: 2026-08-13T09:45:59.498848013Z
+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-13T09:45:59.498965304Z:53
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary Y29tcHV0ZXJz
+ - !!binary MjAyNi0wOC0xMyAwOTo0NTo1OS40OTgzMzErMDA=
+ - !!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: 124
+ - 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-13T09:45:59.498331Z
+ - 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-13T09:45:59.498965304Z
+ resTimestampMock: 2026-08-13T09:45:59.499153013Z
+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-13T09:45:59.499781013Z:54
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.499781013Z
+ resTimestampMock: 2026-08-13T09:45:59.500176346Z
+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-13T09:45:59.516738471Z:55
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.516738471Z
+ resTimestampMock: 2026-08-13T09:45:59.516961179Z
+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:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:45:59.516738471Z: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: 124
+ - 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-13T09:45:59.230084Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ - - 2
+ - peripherals
+ - 2026-08-13T09:45:59.284298Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 3
+ - peripherals
+ - 2026-08-13T09:45:59.307213Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ - - 4
+ - monitors
+ - 2026-08-13T09:45:59.329465Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ - - 5
+ - monitors
+ - 2026-08-13T09:45:59.354492Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ - - 6
+ - accessories
+ - 2026-08-13T09:45:59.376546Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 7
+ - audio
+ - 2026-08-13T09:45:59.399209Z
+ - over-ear, BT 5.3
+ - Noise-Cancelling Headphones
+ - int: "19999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 60
+ - - 8
+ - peripherals
+ - 2026-08-13T09:45:59.420404Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ - - 9
+ - storage
+ - 2026-08-13T09:45:59.441796Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ - - 10
+ - accessories
+ - 2026-08-13T09:45:59.461761Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ - - 11
+ - audio
+ - 2026-08-13T09:45:59.480029Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 12
+ - computers
+ - 2026-08-13T09:45:59.498331Z
+ - 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-13T09:45:59.516738471Z
+ resTimestampMock: 2026-08-13T09:45:59.517151804Z
+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-13T09:45:59.521397138Z:57
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.521397138Z
+ resTimestampMock: 2026-08-13T09:45:59.521536554Z
+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-13T09:45:59.541106388Z:58
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.541106388Z
+ resTimestampMock: 2026-08-13T09:45:59.541379346Z
+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-13T09:45:59.541106388Z: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: 124
+ - 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-13T09:45:59.230084Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.541106388Z
+ resTimestampMock: 2026-08-13T09:45:59.542199221Z
+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-13T09:45:59.544205471Z:60
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.544205471Z
+ resTimestampMock: 2026-08-13T09:45:59.544415971Z
+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-13T09:45:59.558116471Z:61
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.558116471Z
+ resTimestampMock: 2026-08-13T09:45:59.558289679Z
+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-13T09:45:59.558165638Z: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: 124
+ - 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-13T09:45:59.284298Z
+ - 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-13T09:45:59.558165638Z
+ resTimestampMock: 2026-08-13T09:45:59.558430763Z
+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-13T09:45:59.559070013Z:63
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.559070013Z
+ resTimestampMock: 2026-08-13T09:45:59.559214596Z
+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-13T09:45:59.571873513Z:64
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.571873513Z
+ resTimestampMock: 2026-08-13T09:45:59.572073971Z
+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-13T09:45:59.571915888Z: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: 124
+ - 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-13T09:45:59.307213Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.571915888Z
+ resTimestampMock: 2026-08-13T09:45:59.572319054Z
+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-13T09:45:59.573726846Z:66
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.573726846Z
+ resTimestampMock: 2026-08-13T09:45:59.573972929Z
+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-13T09:45:59.588257763Z:67
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.588257763Z
+ resTimestampMock: 2026-08-13T09:45:59.588452263Z
+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-13T09:45:59.588257763Z: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: 124
+ - 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-13T09:45:59.329465Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.588257763Z
+ resTimestampMock: 2026-08-13T09:45:59.588703346Z
+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-13T09:45:59.590160388Z:69
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.590160388Z
+ resTimestampMock: 2026-08-13T09:45:59.590419013Z
+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-13T09:45:59.604644304Z:70
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.604644304Z
+ resTimestampMock: 2026-08-13T09:45:59.604814596Z
+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-13T09:45:59.604683346Z: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: 124
+ - 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-13T09:45:59.354492Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.604683346Z
+ resTimestampMock: 2026-08-13T09:45:59.604990929Z
+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-13T09:45:59.605977513Z:72
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.605977513Z
+ resTimestampMock: 2026-08-13T09:45:59.606397721Z
+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-13T09:45:59.621036346Z:73
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.621036346Z
+ resTimestampMock: 2026-08-13T09:45:59.621206054Z
+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-13T09:45:59.621036346Z: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
+ - 233
+ - 87
+ - 5
+ - 226
+ - 162
+ - 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-13T09:45:59.621036346Z
+ resTimestampMock: 2026-08-13T09:45:59.621431679Z
+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-13T09:45:59.624423179Z:75
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.624423179Z
+ resTimestampMock: 2026-08-13T09:45:59.624723888Z
+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-13T09:45:59.637462971Z:76
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.637462971Z
+ resTimestampMock: 2026-08-13T09:45:59.637580304Z
+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-13T09:45:59.637462971Z: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
+ - 233
+ - 87
+ - 6
+ - 59
+ - 41
+ - 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-13T09:45:59.637462971Z
+ resTimestampMock: 2026-08-13T09:45:59.637713221Z
+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-13T09:45:59.638459763Z:78
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.638459763Z
+ resTimestampMock: 2026-08-13T09:45:59.638586554Z
+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-13T09:45:59.652059513Z:79
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.652059513Z
+ resTimestampMock: 2026-08-13T09:45:59.652319513Z
+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-13T09:45:59.652106054Z: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
+ - 233
+ - 87
+ - 6
+ - 141
+ - 244
+ - 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-13T09:45:59.652106054Z
+ resTimestampMock: 2026-08-13T09:45:59.652475388Z
+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-13T09:45:59.653244013Z:81
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.653244013Z
+ resTimestampMock: 2026-08-13T09:45:59.653378221Z
+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-13T09:45:59.667045388Z:82
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.667045388Z
+ resTimestampMock: 2026-08-13T09:45:59.667344471Z
+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-13T09:45:59.667092179Z: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
+ - 233
+ - 87
+ - 6
+ - 225
+ - 132
+ - 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-13T09:45:59.667092179Z
+ resTimestampMock: 2026-08-13T09:45:59.667462929Z
+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-13T09:45:59.670252638Z:84
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.670252638Z
+ resTimestampMock: 2026-08-13T09:45:59.670467929Z
+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-13T09:45:59.687322429Z:85
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.687322429Z
+ resTimestampMock: 2026-08-13T09:45:59.687580471Z
+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-13T09:45:59.687381888Z: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
+ - 233
+ - 87
+ - 7
+ - 47
+ - 129
+ - 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-13T09:45:59.687381888Z
+ resTimestampMock: 2026-08-13T09:45:59.687778554Z
+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-13T09:45:59.689050846Z:87
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.689050846Z
+ resTimestampMock: 2026-08-13T09:45:59.689196638Z
+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-13T09:45:59.702963763Z:88
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.702963763Z
+ resTimestampMock: 2026-08-13T09:45:59.703100471Z
+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-13T09:45:59.703006429Z: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
+ - 233
+ - 87
+ - 7
+ - 118
+ - 221
+ - 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-13T09:45:59.703006429Z
+ resTimestampMock: 2026-08-13T09:45:59.703179304Z
+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-13T09:45:59.703766054Z:90
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.703766054Z
+ resTimestampMock: 2026-08-13T09:45:59.703882679Z
+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-13T09:45:59.717316138Z:91
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.717316138Z
+ resTimestampMock: 2026-08-13T09:45:59.717454179Z
+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-13T09:45:59.717363554Z: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
+ - 233
+ - 87
+ - 7
+ - 190
+ - 91
+ - 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-13T09:45:59.717363554Z
+ resTimestampMock: 2026-08-13T09:45:59.717544971Z
+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-13T09:45:59.718590138Z:93
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.718590138Z
+ resTimestampMock: 2026-08-13T09:45:59.718759138Z
+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-13T09:45:59.787377054Z:94
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.787377054Z
+ resTimestampMock: 2026-08-13T09:45:59.787551096Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.787801013Z: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: 124
+ - 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-13T09:45:59.230084Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ - - 2
+ - peripherals
+ - 2026-08-13T09:45:59.284298Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 3
+ - peripherals
+ - 2026-08-13T09:45:59.307213Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ - - 8
+ - peripherals
+ - 2026-08-13T09:45:59.420404Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ commandComplete: SELECT 4
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.787801013Z
+ resTimestampMock: 2026-08-13T09:45:59.788765221Z
+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-13T09:45:59.791736096Z:96
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.791736096Z
+ resTimestampMock: 2026-08-13T09:45:59.791914429Z
+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-13T09:45:59.806136971Z:97
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.806136971Z
+ resTimestampMock: 2026-08-13T09:45:59.806427304Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.806136971Z: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: 124
+ - 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-13T09:45:59.329465Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ - - 5
+ - monitors
+ - 2026-08-13T09:45:59.354492Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.806136971Z
+ resTimestampMock: 2026-08-13T09:45:59.806834013Z
+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-13T09:45:59.808384096Z:99
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.808384096Z
+ resTimestampMock: 2026-08-13T09:45:59.808519013Z
+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-13T09:45:59.823253346Z:100
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.823253346Z
+ resTimestampMock: 2026-08-13T09:45:59.823455554Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.823253346Z: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: 124
+ - 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-13T09:45:59.376546Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 10
+ - accessories
+ - 2026-08-13T09:45:59.461761Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.823253346Z
+ resTimestampMock: 2026-08-13T09:45:59.823699013Z
+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-13T09:45:59.824738554Z:102
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.824738554Z
+ resTimestampMock: 2026-08-13T09:45:59.825020179Z
+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-13T09:45:59.840436471Z:103
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.840436471Z
+ resTimestampMock: 2026-08-13T09:45:59.840608929Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.840822263Z: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: 124
+ - 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-13T09:45:59.399209Z
+ - over-ear, BT 5.3
+ - Noise-Cancelling Headphones
+ - int: "19999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 60
+ - - 11
+ - audio
+ - 2026-08-13T09:45:59.480029Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.840822263Z
+ resTimestampMock: 2026-08-13T09:45:59.841445179Z
+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-13T09:45:59.843244554Z:105
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.843244554Z
+ resTimestampMock: 2026-08-13T09:45:59.843536763Z
+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-13T09:45:59.861144513Z:106
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.861144513Z
+ resTimestampMock: 2026-08-13T09:45:59.861450013Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.861238638Z: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: 124
+ - 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-13T09:45:59.441796Z
+ - 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-13T09:45:59.861238638Z
+ resTimestampMock: 2026-08-13T09:45:59.861740221Z
+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-13T09:45:59.862951471Z:108
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.862951471Z
+ resTimestampMock: 2026-08-13T09:45:59.863226763Z
+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-13T09:45:59.879603596Z:109
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.879603596Z
+ resTimestampMock: 2026-08-13T09:45:59.879834805Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.879603596Z: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
+ - 233
+ - 87
+ - 7
+ - 190
+ - 91
+ - 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-13T09:45:59.879603596Z
+ resTimestampMock: 2026-08-13T09:45:59.880145805Z
+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-13T09:45:59.88116043Z:111
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.88116043Z
+ resTimestampMock: 2026-08-13T09:45:59.881329638Z
+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-13T09:45:59.898216221Z:112
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.898216221Z
+ resTimestampMock: 2026-08-13T09:45:59.898348263Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:45:59.898216221Z: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-13T09:45:59.898216221Z
+ resTimestampMock: 2026-08-13T09:45:59.898536013Z
+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-13T09:45:59.899382388Z:114
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.899382388Z
+ resTimestampMock: 2026-08-13T09:45:59.899493888Z
+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-13T09:45:59.913624596Z:115
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.913624596Z
+ resTimestampMock: 2026-08-13T09:45:59.913727471Z
+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-13T09:45:59.913866555Z: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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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-13T09:45:59.913866555Z
+ resTimestampMock: 2026-08-13T09:45:59.914004263Z
+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-13T09:45:59.91978993Z: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-13T09:45:59.91978993Z
+ resTimestampMock: 2026-08-13T09:45:59.920424013Z
+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-13T09:45:59.921440221Z:118
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.921440221Z
+ resTimestampMock: 2026-08-13T09:45:59.922118638Z
+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-13T09:45:59.934575721Z:119
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.934575721Z
+ resTimestampMock: 2026-08-13T09:45:59.93470668Z
+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-13T09:45:59.934575721Z: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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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-13T09:45:59.934575721Z
+ resTimestampMock: 2026-08-13T09:45:59.934864846Z
+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-13T09:45:59.935408305Z:121
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.935408305Z
+ resTimestampMock: 2026-08-13T09:45:59.935595638Z
+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-13T09:45:59.949134513Z:122
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.949134513Z
+ resTimestampMock: 2026-08-13T09:45:59.94927693Z
+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-13T09:45:59.949134513Z: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
+ - 233
+ - 87
+ - 5
+ - 42
+ - 185
+ - 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-13T09:45:59.949134513Z
+ resTimestampMock: 2026-08-13T09:45:59.949418721Z
+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-13T09:45:59.950757888Z: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-13T09:45:59.950757888Z
+ resTimestampMock: 2026-08-13T09:45:59.951063055Z
+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-13T09:45:59.95123618Z:125
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.95123618Z
+ resTimestampMock: 2026-08-13T09:45:59.951590305Z
+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-13T09:45:59.963993221Z:126
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.963993221Z
+ resTimestampMock: 2026-08-13T09:45:59.964137055Z
+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-13T09:45:59.963993221Z: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
+ - 233
+ - 87
+ - 5
+ - 42
+ - 185
+ - 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-13T09:45:59.963993221Z
+ resTimestampMock: 2026-08-13T09:45:59.964279013Z
+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-13T09:45:59.965101555Z:128
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.965101555Z
+ resTimestampMock: 2026-08-13T09:45:59.965207471Z
+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-13T09:45:59.978739805Z:129
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.978739805Z
+ resTimestampMock: 2026-08-13T09:45:59.978895721Z
+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-13T09:45:59.978739805Z: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
+ - 233
+ - 87
+ - 6
+ - 59
+ - 41
+ - 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-13T09:45:59.978739805Z
+ resTimestampMock: 2026-08-13T09:45:59.979050013Z
+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-13T09:45:59.980330721Z: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-13T09:45:59.980330721Z
+ resTimestampMock: 2026-08-13T09:45:59.980626471Z
+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-13T09:45:59.98083918Z:132
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.98083918Z
+ resTimestampMock: 2026-08-13T09:45:59.981231471Z
+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-13T09:45:59.993979555Z:133
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.993979555Z
+ resTimestampMock: 2026-08-13T09:45:59.99414693Z
+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-13T09:45:59.993979555Z: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
+ - 233
+ - 87
+ - 6
+ - 59
+ - 41
+ - 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-13T09:45:59.993979555Z
+ resTimestampMock: 2026-08-13T09:45:59.994307638Z
+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-13T09:45:59.995213096Z:135
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:45:59.995213096Z
+ resTimestampMock: 2026-08-13T09:45:59.995332388Z
+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-13T09:46:00.008422638Z:136
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.008422638Z
+ resTimestampMock: 2026-08-13T09:46:00.008575346Z
+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-13T09:46:00.008477805Z: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
+ - 233
+ - 87
+ - 4
+ - 211
+ - 205
+ - 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-13T09:46:00.008477805Z
+ resTimestampMock: 2026-08-13T09:46:00.008664096Z
+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-13T09:46:00.012685055Z:138
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAM=
+ bindFormats:
+ - 1
+ response:
+ commandComplete: DELETE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.012685055Z
+ resTimestampMock: 2026-08-13T09:46:00.01297943Z
+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-13T09:46:00.014154805Z:139
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.014154805Z
+ resTimestampMock: 2026-08-13T09:46:00.015060805Z
+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-13T09:46:00.033019513Z:140
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.033019513Z
+ resTimestampMock: 2026-08-13T09:46:00.033308846Z
+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-13T09:46:00.033019513Z: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
+ - 233
+ - 87
+ - 7
+ - 47
+ - 129
+ - 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-13T09:46:00.033019513Z
+ resTimestampMock: 2026-08-13T09:46:00.033451721Z
+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-13T09:46:00.034976471Z:142
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAo=
+ bindFormats:
+ - 1
+ response:
+ commandComplete: DELETE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.034976471Z
+ resTimestampMock: 2026-08-13T09:46:00.035378138Z
+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-13T09:46:00.035567013Z:143
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.035567013Z
+ resTimestampMock: 2026-08-13T09:46:00.035953596Z
+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-13T09:46:00.050222221Z:144
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.050222221Z
+ resTimestampMock: 2026-08-13T09:46:00.050409263Z
+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:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:46:00.050273138Z: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: 124
+ - 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-13T09:45:59.230084Z
+ - 75% layout, RGB
+ - Mechanical Keyboard v2
+ - int: "14999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 2
+ - peripherals
+ - 2026-08-13T09:45:59.284298Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 4
+ - monitors
+ - 2026-08-13T09:45:59.329465Z
+ - IPS, 60Hz, HDR400
+ - 27-inch 4K Monitor
+ - int: "29900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 30
+ - - 5
+ - monitors
+ - 2026-08-13T09:45:59.354492Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ - - 6
+ - accessories
+ - 2026-08-13T09:45:59.376546Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 7
+ - audio
+ - 2026-08-13T09:45:59.399209Z
+ - over-ear, BT 5.3, ANC+
+ - Noise-Cancelling Headphones Pro
+ - int: "24999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 50
+ - - 8
+ - peripherals
+ - 2026-08-13T09:45:59.420404Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ - - 9
+ - storage
+ - 2026-08-13T09:45:59.441796Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ - - 11
+ - audio
+ - 2026-08-13T09:45:59.480029Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 12
+ - computers
+ - 2026-08-13T09:45:59.498331Z
+ - 16GB RAM, 512GB SSD
+ - 14-inch Laptop
+ - int: "109900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 15
+ commandComplete: SELECT 10
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.050273138Z
+ resTimestampMock: 2026-08-13T09:46:00.050609263Z
+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-13T09:46:00.052886555Z:146
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.052886555Z
+ resTimestampMock: 2026-08-13T09:46:00.053098888Z
+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-13T09:46:00.069462346Z:147
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.069462346Z
+ resTimestampMock: 2026-08-13T09:46:00.069679096Z
+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:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435
+ 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) order by p1_0.id
+ paramOids:
+ - 1043
+ invocationId: sha256:d648457f5371a87c3694f645684b8e3406d9898f01a44915577c13e3e1138435:0:2026-08-13T09:46:00.069462346Z: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
+ - 1
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 4
+ - 122
+ - 74
+ - 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
+ - 233
+ - 87
+ - 6
+ - 141
+ - 244
+ - 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 3
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.069462346Z
+ resTimestampMock: 2026-08-13T09:46:00.069844971Z
+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-13T09:46:00.071406013Z:149
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.071406013Z
+ resTimestampMock: 2026-08-13T09:46:00.071604221Z
+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-13T09:46:00.08619768Z:150
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.08619768Z
+ resTimestampMock: 2026-08-13T09:46:00.086342138Z
+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-13T09:46:00.086245596Z: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-13T09:46:00.086245596Z
+ resTimestampMock: 2026-08-13T09:46:00.086518805Z
+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-13T09:46:00.087674721Z:152
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.087674721Z
+ resTimestampMock: 2026-08-13T09:46:00.087823305Z
+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-13T09:46:00.115305305Z:153
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.115305305Z
+ resTimestampMock: 2026-08-13T09:46:00.115448888Z
+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-13T09:46:00.115346638Z: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-13T09:46:00.115346638Z
+ resTimestampMock: 2026-08-13T09:46:00.115546055Z
+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-13T09:46:00.116055763Z:155
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.116055763Z
+ resTimestampMock: 2026-08-13T09:46:00.116305513Z
+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-13T09:46:00.137674846Z:156
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.137674846Z
+ resTimestampMock: 2026-08-13T09:46:00.137843721Z
+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-13T09:46:00.137730971Z: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-13T09:46:00.137730971Z
+ resTimestampMock: 2026-08-13T09:46:00.138072513Z
+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-13T09:46:00.138626138Z:158
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.138626138Z
+ resTimestampMock: 2026-08-13T09:46:00.139443305Z
+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-13T09:46:00.159033138Z:159
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.159033138Z
+ resTimestampMock: 2026-08-13T09:46:00.159304055Z
+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-13T09:46:00.159081513Z: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-13T09:46:00.159081513Z
+ resTimestampMock: 2026-08-13T09:46:00.159500138Z
+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-13T09:46:00.160079471Z:161
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.160079471Z
+ resTimestampMock: 2026-08-13T09:46:00.160191305Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-192
+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-13T09:46:00.380634096Z:162
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.380634096Z
+ resTimestampMock: 2026-08-13T09:46:00.380816471Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-193
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:46:00.380702263Z:163
+ 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: 124
+ - 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-13T09:45:59.230084Z
+ - 75% layout, RGB
+ - Mechanical Keyboard v2
+ - int: "14999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 2
+ - peripherals
+ - 2026-08-13T09:45:59.284298Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 4
+ - monitors
+ - 2026-08-13T09:45:59.329465Z
+ - IPS, 60Hz, HDR400
+ - 27-inch 4K Monitor
+ - int: "29900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 30
+ - - 5
+ - monitors
+ - 2026-08-13T09:45:59.354492Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ - - 6
+ - accessories
+ - 2026-08-13T09:45:59.376546Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 7
+ - audio
+ - 2026-08-13T09:45:59.399209Z
+ - over-ear, BT 5.3, ANC+
+ - Noise-Cancelling Headphones Pro
+ - int: "24999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 50
+ - - 8
+ - peripherals
+ - 2026-08-13T09:45:59.420404Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ - - 9
+ - storage
+ - 2026-08-13T09:45:59.441796Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ - - 11
+ - audio
+ - 2026-08-13T09:45:59.480029Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 12
+ - computers
+ - 2026-08-13T09:45:59.498331Z
+ - 16GB RAM, 512GB SSD
+ - 14-inch Laptop
+ - int: "109900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 15
+ commandComplete: SELECT 10
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.380702263Z
+ resTimestampMock: 2026-08-13T09:46:00.381017596Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-194
+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-13T09:46:00.38403893Z:164
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.38403893Z
+ resTimestampMock: 2026-08-13T09:46:00.384242096Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-195
+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-13T09:46:00.412728805Z:165
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.412728805Z
+ resTimestampMock: 2026-08-13T09:46:00.412904138Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-196
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780
+ 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 order by p1_0.id
+ invocationId: sha256:72cc674a23c11c9d2a3d4092b5ce7a0fc9166827d41bf29b67be2031a74a5780:0:2026-08-13T09:46:00.413012763Z:166
+ precedingTxState: in_tx
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 4
+ - 122
+ - 74
+ - 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
+ - 4
+ - format: 0
+ bytes:
+ - 109
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 233
+ - 87
+ - 5
+ - 42
+ - 185
+ - 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
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 5
+ - format: 0
+ bytes:
+ - 109
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 233
+ - 87
+ - 5
+ - 140
+ - 124
+ - format: 0
+ bytes:
+ - 99
+ - 117
+ - 114
+ - 118
+ - 101
+ - 100
+ - 44
+ - 32
+ - 49
+ - 52
+ - 52
+ - 72
+ - 122
+ - format: 0
+ bytes:
+ - 51
+ - 52
+ - 45
+ - 105
+ - 110
+ - 99
+ - 104
+ - 32
+ - 85
+ - 108
+ - 116
+ - 114
+ - 97
+ - 119
+ - 105
+ - 100
+ - 101
+ - 32
+ - 77
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 2
+ - 87
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 12
+ - - 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
+ - 233
+ - 87
+ - 5
+ - 226
+ - 162
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 6
+ - 59
+ - 41
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 6
+ - 141
+ - 244
+ - 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
+ - 9
+ - format: 0
+ bytes:
+ - 115
+ - 116
+ - 111
+ - 114
+ - 97
+ - 103
+ - 101
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 233
+ - 87
+ - 6
+ - 225
+ - 132
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 7
+ - 118
+ - 221
+ - 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
+ - - 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
+ - 233
+ - 87
+ - 7
+ - 190
+ - 91
+ - 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 10
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.413012763Z
+ resTimestampMock: 2026-08-13T09:46:00.41326593Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-197
+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-13T09:46:00.414755055Z:167
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.414755055Z
+ resTimestampMock: 2026-08-13T09:46:00.41493318Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-198
+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-13T09:46:00.432930805Z:168
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.432930805Z
+ resTimestampMock: 2026-08-13T09:46:00.433110638Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-199
+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-13T09:46:00.432930805Z:169
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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-13T09:46:00.432930805Z
+ resTimestampMock: 2026-08-13T09:46:00.433200221Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-200
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd
+ sqlNormalized: update products p1_0 set stock_quantity=(p1_0.stock_quantity+$1) where p1_0.id=$2 and (p1_0.stock_quantity+$3)>=$4
+ paramOids:
+ - 23
+ - 20
+ - 23
+ invocationId: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd:0:2026-08-13T09:46:00.445759138Z:170
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary ////+w==
+ - !!binary AAAAAAAAAAE=
+ - !!binary ////+w==
+ bindFormats:
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.445759138Z
+ resTimestampMock: 2026-08-13T09:46:00.446296763Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-201
+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-13T09:46:00.447324305Z:171
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - 30
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.447324305Z
+ resTimestampMock: 2026-08-13T09:46:00.44747918Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-202
+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-13T09:46:00.448157763Z:172
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.448157763Z
+ resTimestampMock: 2026-08-13T09:46:00.448487846Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-203
+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-13T09:46:00.461563805Z:173
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.461563805Z
+ resTimestampMock: 2026-08-13T09:46:00.461703055Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-204
+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-13T09:46:00.461620596Z:174
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - 30
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.461620596Z
+ resTimestampMock: 2026-08-13T09:46:00.461885346Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-205
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd
+ sqlNormalized: update products p1_0 set stock_quantity=(p1_0.stock_quantity+$1) where p1_0.id=$2 and (p1_0.stock_quantity+$3)>=$4
+ paramOids:
+ - 23
+ - 20
+ - 23
+ invocationId: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd:0:2026-08-13T09:46:00.463485013Z:175
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAZA==
+ - !!binary AAAAAAAAAAE=
+ - !!binary AAAAZA==
+ bindFormats:
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.463485013Z
+ resTimestampMock: 2026-08-13T09:46:00.463766471Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-206
+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-13T09:46:00.464294888Z:176
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - 130
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.464294888Z
+ resTimestampMock: 2026-08-13T09:46:00.464403971Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-207
+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-13T09:46:00.464928513Z:177
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.464928513Z
+ resTimestampMock: 2026-08-13T09:46:00.465250055Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-208
+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-13T09:46:00.479606638Z:178
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.479606638Z
+ resTimestampMock: 2026-08-13T09:46:00.47974093Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-209
+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-13T09:46:00.479606638Z:179
+ 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
+ - 233
+ - 87
+ - 3
+ - 166
+ - 132
+ - 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
+ - 130
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.479606638Z
+ resTimestampMock: 2026-08-13T09:46:00.479921846Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-210
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd
+ sqlNormalized: update products p1_0 set stock_quantity=(p1_0.stock_quantity+$1) where p1_0.id=$2 and (p1_0.stock_quantity+$3)>=$4
+ paramOids:
+ - 23
+ - 20
+ - 23
+ invocationId: sha256:3938a5e51e5d48f58ec54c7aff7d2bd3724556a9f04975b298620cbea33389fd:0:2026-08-13T09:46:00.481882138Z:180
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary //55YQ==
+ - !!binary AAAAAAAAAAE=
+ - !!binary //55YQ==
+ bindFormats:
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.481882138Z
+ resTimestampMock: 2026-08-13T09:46:00.482213555Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-211
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:254801e1e89bac2c4da78db63df9072dc6e671614b56257f551f3f0c1074bc1e
+ sqlNormalized: select count(*) from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:254801e1e89bac2c4da78db63df9072dc6e671614b56257f551f3f0c1074bc1e:0:2026-08-13T09:46:00.496005596Z:181
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAE=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: count
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ rows:
+ - - 1
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.496005596Z
+ resTimestampMock: 2026-08-13T09:46:00.496579513Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-212
+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-13T09:46:00.49871093Z:182
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.49871093Z
+ resTimestampMock: 2026-08-13T09:46:00.498872805Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-213
+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-13T09:46:00.520345388Z:183
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.520345388Z
+ resTimestampMock: 2026-08-13T09:46:00.52048493Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-214
+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-13T09:46:00.520345388Z:184
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAABhp8=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.520345388Z
+ resTimestampMock: 2026-08-13T09:46:00.520597388Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-215
+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-13T09:46:00.521004346Z:185
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-13T09:46:00.521004346Z
+ resTimestampMock: 2026-08-13T09:46:00.521316805Z
+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..c891812a
--- /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-13T09:46:00.006322596Z
+ resp:
+ status_code: 204
+ header:
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: ""
+ status_message: No Content
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.016106721Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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..8ef7cfc1
--- /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-13T09:46:00.030624096Z
+ resp:
+ status_code: 204
+ header:
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: ""
+ status_message: No Content
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.036596263Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request DELETE \
+ --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/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..8f499fc1
--- /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-13T09:46:00.157014263Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.161648555Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request DELETE \
+ --url http://localhost:8080/api/products/88888 \
+ --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-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml
new file mode 100644
index 00000000..b2de169c
--- /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-13T09:45:58.075310804Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:58 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:58.536684971Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614358
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --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-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml
new file mode 100644
index 00000000..a7658128
--- /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-13T09:45:59.895803055Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.900507221Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=gaming \
+ --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-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml
new file mode 100644
index 00000000..e392b9e4
--- /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-13T09:46:00.047595096Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "1688"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-13T09:45:59.284298Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-13T09:45:59.354492Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-13T09:45:59.376546Z"},{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-13T09:45:59.399209Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-13T09:45:59.420404Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-13T09:45:59.441796Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-13T09:45:59.480029Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-13T09:45:59.498331Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.054597513Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --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-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml
new file mode 100644
index 00000000..1700914b
--- /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-13T09:46:00.066984221Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "495"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-13T09:45:59.284298Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-13T09:45:59.420404Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.073723596Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=peripherals \
+ --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-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml
new file mode 100644
index 00000000..26fdb5e8
--- /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-13T09:45:59.134663804Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.141810971Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614359
+ 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..b465724b
--- /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-13T09:45:59.514448513Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "1995"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-13T09:45:59.284298Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-13T09:45:59.307213Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-13T09:45:59.354492Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-13T09:45:59.376546Z"},{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-13T09:45:59.399209Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-13T09:45:59.420404Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-13T09:45:59.441796Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-13T09:45:59.461761Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-13T09:45:59.480029Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-13T09:45:59.498331Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.523892263Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..0b98665e
--- /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-13T09:45:59.730453929Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "662"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-13T09:45:59.284298Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-13T09:45:59.307213Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-13T09:45:59.420404Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.793465304Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=peripherals \
+ --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-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml
new file mode 100644
index 00000000..d38a78e2
--- /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-13T09:45:59.803908138Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "334"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-13T09:45:59.354492Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.809909763Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..89ca2142
--- /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-13T09:45:59.820486554Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "328"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-13T09:45:59.376546Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-13T09:45:59.461761Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.826067888Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=accessories \
+ --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-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml
new file mode 100644
index 00000000..640763a2
--- /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-13T09:45:59.837360388Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "343"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-13T09:45:59.399209Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-13T09:45:59.480029Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.845592638Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=audio \
+ --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-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml
new file mode 100644
index 00000000..271412a4
--- /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-13T09:45:59.858410888Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "162"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-13T09:45:59.441796Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.86475443Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=storage \
+ --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-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml
new file mode 100644
index 00000000..bdce039e
--- /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-13T09:45:59.876746263Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "171"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '[{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-13T09:45:59.498331Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.883312346Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..bf1a102f
--- /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-13T09:45:59.534145096Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "172"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.546138971Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/1 \
+ --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-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml
new file mode 100644
index 00000000..8783121b
--- /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-13T09:45:59.685192388Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "157"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-13T09:45:59.461761Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.690895554Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --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/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..5de628d9
--- /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-13T09:45:59.701376263Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "167"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-13T09:45:59.480029Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.705104138Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/11 \
+ --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-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml
new file mode 100644
index 00000000..45527dd6
--- /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-13T09:45:59.715407804Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "169"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-13T09:45:59.498331Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.719879013Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..9086c0aa
--- /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-13T09:45:59.933068096Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.937145888Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..cdf7c64b
--- /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-13T09:45:59.962275346Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.96618193Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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-15.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml
new file mode 100644
index 00000000..86829ae2
--- /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-13T09:45:59.992347055Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "183"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.399209Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.996277763Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..73ef9023
--- /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-13T09:46:00.084461596Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.095372888Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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..3477f8d7
--- /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-13T09:46:00.113740346Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.117790346Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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..f5002fa3
--- /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-13T09:45:59.556217138Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "161"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-13T09:45:59.284298Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.560162804Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..46a53e25
--- /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-13T09:45:59.570290804Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "167"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-13T09:45:59.307213Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.575119971Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml
new file mode 100644
index 00000000..767d77c3
--- /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-13T09:45:59.585763096Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "160"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.591937513Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/4 \
+ --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-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml
new file mode 100644
index 00000000..ebc286fe
--- /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-13T09:45:59.603063054Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "171"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-13T09:45:59.354492Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.608060096Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/5 \
+ --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-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml
new file mode 100644
index 00000000..0c2721fd
--- /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-13T09:45:59.618740179Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-13T09:45:59.376546Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.626343763Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/6 \
+ --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-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml
new file mode 100644
index 00000000..d805ca8f
--- /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-13T09:45:59.635955388Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-13T09:45:59.399209Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.639838513Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/7 \
+ --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-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml
new file mode 100644
index 00000000..56adb1e9
--- /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-13T09:45:59.650170513Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "157"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-13T09:45:59.420404Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.654396721Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/8 \
+ --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-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml
new file mode 100644
index 00000000..041e9270
--- /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-13T09:45:59.665269638Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "160"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-13T09:45:59.441796Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.671888888Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/9 \
+ --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-summary-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-summary-1.yaml
new file mode 100644
index 00000000..03de02d4
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-summary-1.yaml
@@ -0,0 +1,40 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-summary-1
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/summary
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-13T09:46:00.37699143Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "632"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '{"totalProducts":10,"totalStockUnits":472,"totalInventoryValue":70607.45,"lowStockThreshold":5,"lowStockProducts":[],"categories":[{"category":"computers","productCount":1,"stockUnits":15,"inventoryValue":16485.00},{"category":"monitors","productCount":2,"stockUnits":42,"inventoryValue":16158.00},{"category":"audio","productCount":2,"stockUnits":85,"inventoryValue":15614.50},{"category":"peripherals","productCount":3,"stockUnits":180,"inventoryValue":11854.65},{"category":"storage","productCount":1,"stockUnits":70,"inventoryValue":7699.30},{"category":"accessories","productCount":1,"stockUnits":80,"inventoryValue":2796.00}]}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.392971555Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/summary \
+ --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-summary-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-summary-2.yaml
new file mode 100644
index 00000000..576276e5
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-summary-2.yaml
@@ -0,0 +1,42 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-summary-2
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/summary?lowStockThreshold=15
+ url_params:
+ lowStockThreshold: "15"
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-13T09:46:00.410088513Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "677"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '{"totalProducts":10,"totalStockUnits":472,"totalInventoryValue":70607.45,"lowStockThreshold":15,"lowStockProducts":["34-inch Ultrawide Monitor","14-inch Laptop"],"categories":[{"category":"computers","productCount":1,"stockUnits":15,"inventoryValue":16485.00},{"category":"monitors","productCount":2,"stockUnits":42,"inventoryValue":16158.00},{"category":"audio","productCount":2,"stockUnits":85,"inventoryValue":15614.50},{"category":"peripherals","productCount":3,"stockUnits":180,"inventoryValue":11854.65},{"category":"storage","productCount":1,"stockUnits":70,"inventoryValue":7699.30},{"category":"accessories","productCount":1,"stockUnits":80,"inventoryValue":2796.00}]}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.416176638Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/summary?lowStockThreshold=15 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-1.yaml
new file mode 100644
index 00000000..5974ad02
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-1.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: patch-api-products-by-id-stock-1
+spec:
+ metadata: {}
+ req:
+ method: PATCH
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1/stock
+ header:
+ Accept: '*/*'
+ Content-Length: "12"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"delta":-5}'
+ timestamp: 2026-08-13T09:46:00.42716218Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":30,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.449570805Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |-
+ curl --request PATCH \
+ --url http://localhost:8080/api/products/1/stock \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"delta\":-5}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-2.yaml
new file mode 100644
index 00000000..abf4c5fa
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-2.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: patch-api-products-by-id-stock-2
+spec:
+ metadata: {}
+ req:
+ method: PATCH
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1/stock
+ header:
+ Accept: '*/*'
+ Content-Length: "13"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"delta":100}'
+ timestamp: 2026-08-13T09:46:00.45932843Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "174"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":130,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.466155471Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |-
+ curl --request PATCH \
+ --url http://localhost:8080/api/products/1/stock \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"delta\":100}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-3.yaml
new file mode 100644
index 00000000..9b42a215
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-3.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: patch-api-products-by-id-stock-3
+spec:
+ metadata: {}
+ req:
+ method: PATCH
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1/stock
+ header:
+ Accept: '*/*'
+ Content-Length: "16"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"delta":-99999}'
+ timestamp: 2026-08-13T09:46:00.476814138Z
+ resp:
+ status_code: 409
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 GMT
+ body: '{"status":409,"error":"Conflict","message":"Cannot adjust stock of product 1 by -99999: only 130 in stock"}'
+ status_message: Conflict
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:46:00.500331555Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |-
+ curl --request PATCH \
+ --url http://localhost:8080/api/products/1/stock \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"delta\":-99999}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-4.yaml
new file mode 100644
index 00000000..16b4a90e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/patch-api-products-by-id-stock-4.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: patch-api-products-by-id-stock-4
+spec:
+ metadata: {}
+ req:
+ method: PATCH
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/99999/stock
+ header:
+ Accept: '*/*'
+ Content-Length: "11"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"delta":1}'
+ timestamp: 2026-08-13T09:46:00.518180263Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.523323388Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |-
+ curl --request PATCH \
+ --url http://localhost:8080/api/products/99999/stock \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"delta\":1}"
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..2d305300
--- /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-13T09:45:59.153460179Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.230083679Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.264043263Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..17ee924f
--- /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-13T09:45:59.459791054Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.461760679Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.464792721Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..76bd48bd
--- /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-13T09:45:59.478350721Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.480029138Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.483107179Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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 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..eaed7ea3
--- /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-13T09:45:59.496611138Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.498330804Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.501281888Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..71fb3974
--- /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-13T09:46:00.177821971Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.186976388Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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\":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..dee6023b
--- /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-13T09:46:00.20438493Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.207385638Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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 "{\"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..bf9a79a8
--- /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-13T09:46:00.223426888Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.226115846Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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\":-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..a9e4854e
--- /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-13T09:46:00.246215763Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.250559763Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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\",\"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..89944be2
--- /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-13T09:46:00.27361768Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.277011138Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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\",\"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..b5cfec10
--- /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-13T09:46:00.301164305Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.304566596Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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,\"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..d2573bc2
--- /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-13T09:46:00.32082993Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.324059388Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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..e7c2eec3
--- /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-13T09:45:59.281913221Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.284298263Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.288404679Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..506e958d
--- /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-13T09:46:00.339305555Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.341798096Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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\":\"\",\"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..89de93cd
--- /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-13T09:45:59.304616554Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.307212554Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.311768888Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..a2f26ec1
--- /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-13T09:45:59.327379846Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.329465221Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.333671013Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..343cee9e
--- /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-13T09:45:59.351684471Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.354492221Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.359127971Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..a7360b04
--- /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-13T09:45:59.374416929Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.376546263Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.382022388Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..a3738578
--- /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-13T09:45:59.397159513Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.399209471Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.403686679Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..47c88ce2
--- /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-13T09:45:59.418272221Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.420404096Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.425402096Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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\":\"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..7fee7695
--- /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-13T09:45:59.439828471Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.441795846Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.445536054Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ 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..b41f5f10
--- /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-13T09:45:59.911332221Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-13T09:45:59.230084Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.923781471Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/1 \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --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..63cbf691
--- /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-13T09:45:59.946764596Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-13T09:45:59.329465Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.952565471Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/4 \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --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..15e8cef9
--- /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-13T09:45:59.975931638Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "183"
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:45:59 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-13T09:45:59.399209Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-13T09:45:59.982355638Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1786614359
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/7 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --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..e3908cfd
--- /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-13T09:46:00.135012221Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.14096393Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/99999 \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --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..a48cdd79
--- /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-13T09:46:00.35755493Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Thu, 13 Aug 2026 09:46:00 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-13T09:46:00.360385638Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1786614360
+ 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..beaa2048
--- /dev/null
+++ b/spring-boot-product-catalog/pom.xml
@@ -0,0 +1,53 @@
+
+
+ 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-web
+
+
+
+ org.postgresql
+ postgresql
+ runtime
+
+
+
+
+
+
+ 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..576c5d63
--- /dev/null
+++ b/spring-boot-product-catalog/seed.sh
@@ -0,0 +1,130 @@
+#!/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 -euo pipefail
+
+BASE="${BASE:-http://localhost:8080}"
+
+# --- helpers -----------------------------------------------------------------
+# grep -m1 stops after the first match and exits 0 (no SIGPIPE from a downstream `head`),
+# so it stays well-behaved under `set -e` + `pipefail`.
+id_of() { grep -m1 -o '"id":[0-9]*' | cut -d: -f2; }
+
+CREATED=() # ids of products created, in order
+
+# create '' -> prints response, appends new id to CREATED
+create() {
+ local json="$1" body id
+ if ! body=$(curl -fsS -X POST "$BASE/api/products" -H 'Content-Type: application/json' -d "$json"); then
+ echo " ERROR: create request failed for: $json" >&2
+ exit 1
+ fi
+ echo " created: $body"
+ id=$(printf '%s' "$body" | id_of || true)
+ if [ -z "$id" ]; then
+ echo " ERROR: no id in create response: $body" >&2
+ exit 1
+ fi
+ CREATED+=("$id")
+}
+
+# expect '