diff --git a/.github/workflows/spring-boot-product-catalog.yml b/.github/workflows/spring-boot-product-catalog.yml
new file mode 100644
index 00000000..3a18284b
--- /dev/null
+++ b/.github/workflows/spring-boot-product-catalog.yml
@@ -0,0 +1,81 @@
+# spring-boot-product-catalog sample CI — build + end-to-end smoke test.
+#
+# Scoped with `paths:` to this sample only, so unrelated samples don't pay for
+# it (same convention as restheart-mongo.yml). Deliberately Keploy-independent:
+# record/replay needs eBPF privileges that are awkward on hosted runners, so CI
+# proves the app builds and serves the traffic the recorded suite was captured
+# from. The committed test set under keploy/products-crud/ is the regression
+# gate, exercised locally and in the Keploy pipelines.
+name: spring-boot-product-catalog sample
+
+on:
+ pull_request:
+ paths:
+ - 'spring-boot-product-catalog/**'
+ - '.github/workflows/spring-boot-product-catalog.yml'
+ push:
+ branches: [main]
+ paths:
+ - 'spring-boot-product-catalog/**'
+ - '.github/workflows/spring-boot-product-catalog.yml'
+ workflow_dispatch: {}
+
+concurrency:
+ group: spring-boot-product-catalog-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ name: build (JDK 21)
+ runs-on: ubuntu-latest
+ timeout-minutes: 15
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
+ with:
+ java-version: '21'
+ distribution: 'temurin'
+ cache: maven
+
+ - name: Build with Maven
+ working-directory: spring-boot-product-catalog
+ run: ./mvnw -B -DskipTests clean package
+
+ smoke:
+ name: end-to-end smoke test
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Start app + Postgres
+ working-directory: spring-boot-product-catalog
+ run: docker compose up -d --build --wait
+
+ - name: Drive the recorded workload
+ working-directory: spring-boot-product-catalog
+ run: ./seed.sh
+
+ - name: Assert the catalog responds
+ working-directory: spring-boot-product-catalog
+ run: |
+ set -Eeuo pipefail
+ curl -fsS http://localhost:8080/api/products >/dev/null
+ curl -fsS http://localhost:8080/api/products/summary >/dev/null
+ # The 404 path must stay a clean 404, not a 500 — the recorded suite
+ # asserts the structured error body.
+ code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/api/products/99999)
+ [ "$code" = "404" ] || { echo "::error::expected 404 for a missing product, got $code"; exit 1; }
+ echo "OK — catalog, summary, and not-found paths all behave."
+
+ - name: Dump app logs on failure
+ if: failure()
+ working-directory: spring-boot-product-catalog
+ run: docker compose logs --no-color app
+
+ - name: Tear down
+ if: always()
+ working-directory: spring-boot-product-catalog
+ run: docker compose down -v
diff --git a/README.md b/README.md
index 5fd1a54e..0a271aff 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,7 @@ This repo contains the sample for [Keploy's](https://keploy.io) Java Application
8. [Dropwizard Dynamic Deduplication](https://github.com/keploy/samples-java/tree/main/dropwizard-dedup) - A Dropwizard/Jersey sample used by Enterprise CI to validate that Java dynamic dedup works outside Spring Boot with the runtime Java agent, checked-in HTTP fixtures, native launch, classpath launch, Docker, distroless, and restricted Docker.
9. [Simple Java Dynamic Deduplication](https://github.com/keploy/samples-java/tree/main/simple-java-dedup) - A minimal plain-Java HTTP server used to smoke-test Java dynamic dedup on Java 8 and Java 17 in native and Docker launch modes.
10. [MySQL CRUD](https://github.com/keploy/samples-java/tree/main/mysql-crud) - A minimal Spring Boot + JDBC CRUD app used by Enterprise CI to validate the self-hosted cloud-replay pipeline's JDBC secret-obfuscation and object-storage mock upload/download paths against a real MySQL 8 backend.
+11. [Springboot Product Catalog](https://github.com/keploy/samples-java/tree/main/spring-boot-product-catalog) - A Spring Boot + PostgreSQL product-catalog REST API shipping a committed 57-case Keploy test set and 190 Postgres mocks. Includes an app-only docker-compose with no database service at all, so the whole suite replays green with Postgres absent.
## Community Support ❤️
diff --git a/spring-boot-product-catalog/.dockerignore b/spring-boot-product-catalog/.dockerignore
new file mode 100644
index 00000000..91c89b03
--- /dev/null
+++ b/spring-boot-product-catalog/.dockerignore
@@ -0,0 +1,6 @@
+target/
+keploy/
+.git/
+.idea/
+*.iml
+HELP.md
diff --git a/spring-boot-product-catalog/.gitattributes b/spring-boot-product-catalog/.gitattributes
new file mode 100644
index 00000000..3b41682a
--- /dev/null
+++ b/spring-boot-product-catalog/.gitattributes
@@ -0,0 +1,2 @@
+/mvnw text eol=lf
+*.cmd text eol=crlf
diff --git a/spring-boot-product-catalog/.gitignore b/spring-boot-product-catalog/.gitignore
new file mode 100644
index 00000000..553d239d
--- /dev/null
+++ b/spring-boot-product-catalog/.gitignore
@@ -0,0 +1,37 @@
+target/
+.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+# keploy runtime artifacts
+agent-debug.log
+**/agent-debug.log
+docker-compose-tmp.yaml
diff --git a/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties b/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 00000000..216df058
--- /dev/null
+++ b/spring-boot-product-catalog/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,3 @@
+wrapperVersion=3.3.4
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip
diff --git a/spring-boot-product-catalog/Dockerfile b/spring-boot-product-catalog/Dockerfile
new file mode 100644
index 00000000..5ead4273
--- /dev/null
+++ b/spring-boot-product-catalog/Dockerfile
@@ -0,0 +1,24 @@
+# syntax=docker/dockerfile:1
+
+# ---- Build stage: compile & package with a pinned JDK 21 (reproducible on any host) ----
+FROM eclipse-temurin:21-jdk AS build
+WORKDIR /app
+
+# Copy the Maven wrapper first so dependency resolution can be cached.
+COPY .mvn/ .mvn/
+COPY mvnw pom.xml ./
+RUN ./mvnw -B -q dependency:go-offline
+
+# Now copy sources and build the fat jar (skip tests — they need a live DB).
+COPY src ./src
+RUN ./mvnw -B -q -DskipTests clean package
+
+# ---- Run stage: slim JRE image ----
+FROM eclipse-temurin:21-jre
+WORKDIR /app
+# curl is used by the docker-compose healthcheck.
+RUN apt-get update && apt-get install -y --no-install-recommends curl \
+ && rm -rf /var/lib/apt/lists/*
+COPY --from=build /app/target/*.jar app.jar
+EXPOSE 8080
+ENTRYPOINT ["java", "-jar", "app.jar"]
diff --git a/spring-boot-product-catalog/README.md b/spring-boot-product-catalog/README.md
new file mode 100644
index 00000000..d806739d
--- /dev/null
+++ b/spring-boot-product-catalog/README.md
@@ -0,0 +1,300 @@
+# Product Catalog — Spring Boot + PostgreSQL
+
+A product-catalog REST API built with [Spring Boot](https://spring.io) and
+[PostgreSQL](https://www.postgresql.org/), used to show Keploy replacing hand-written API
+tests. Instead of JUnit fixtures, mocks, and assertions, Keploy **records real traffic
+once** — capturing every downstream Postgres call as a mock — and replays it as a
+regression suite that needs no database at all.
+
+**Note** :- Issue Creation is disabled on this Repository, please visit [here](https://github.com/keploy/keploy/issues/new/choose) to submit Issue.
+
+## What this sample shows
+
+The recorded suite committed under `keploy/products-crud/` contains:
+
+- **57 test cases** covering the full CRUD lifecycle, category filtering, and 404/400 edge cases
+- **190 Postgres mocks**, so the database is stubbed on replay and the tests run anywhere
+- **Zero hand-written assertions** — the recorded responses *are* the assertions
+- **Auto-detected noise** — Keploy marks non-deterministic fields (`createdAt`, the `Date` header) itself
+
+The payoff is `docker-compose.keploy.yml`, an app-only Compose file with no `postgres`
+service at all. The suite still passes green, because every database call is served from
+the recorded mocks.
+
+| Traditional | Keploy |
+|-------------|--------|
+| Write test clients + assertions by hand | Record real traffic once |
+| Manage a test database / fixtures | Downstream calls captured as mocks |
+| Mocks drift from reality | Mocks *are* reality (recorded from the real DB) |
+| Tests need infra to run | Replay is dependency-free |
+
+## Architecture
+
+```mermaid
+flowchart LR
+ Seed[seed.sh / curl] -->|HTTP| App[Spring Boot
Product Catalog]
+ App -->|JDBC| PG[(PostgreSQL 17)]
+ Keploy[keploy-v3
eBPF proxy] -.->|records inbound HTTP
as test cases| App
+ Keploy -.->|records outbound JDBC
as mocks| PG
+```
+
+Keploy sits in the network path via eBPF and records both sides at once: inbound HTTP
+becomes test cases, outbound JDBC becomes mocks. The application needs no code changes.
+
+## Pre-requisites
+
+- [Docker](https://docs.docker.com/get-docker/) and Docker Compose — the app and database both run in containers
+- No local Java or Maven needed; the multi-stage `Dockerfile` builds with a pinned Temurin 21 JDK
+
+## Quick Keploy Installation
+
+Based on your OS and preference (Docker/Native), you can set up Keploy using the one-click
+installation method:
+
+```sh
+curl -O https://raw.githubusercontent.com/keploy/keploy/main/keploy.sh && source keploy.sh
+```
+
+## Setup the Product Catalog App
+
+Clone the repository and start the stack:
+
+```bash
+git clone https://github.com/keploy/samples-java && cd samples-java/spring-boot-product-catalog
+
+docker compose up --build
+```
+
+The API is now on `http://localhost:8080`. Tear down later with `docker compose down -v`.
+
+## About the API
+
+| Method | Path | Description | Success |
+|----------|-------------------------------|----------------------------------------------------|----------------|
+| `POST` | `/api/products` | Create a product | `201` + `Location` |
+| `GET` | `/api/products` | List all products (optional `?category=`) | `200` |
+| `GET` | `/api/products/summary` | Inventory rollup (optional `?lowStockThreshold=`) | `200` |
+| `GET` | `/api/products/{id}` | Fetch one product | `200` / `404` |
+| `PUT` | `/api/products/{id}` | Replace a product | `200` / `404` |
+| `PATCH` | `/api/products/{id}/stock` | Adjust stock by a `delta` | `200` / `404` / `409` |
+| `DELETE` | `/api/products/{id}` | Delete a product | `204` / `404` |
+
+A product has `name` (required, ≤120 chars), `description` (optional, ≤1000 chars),
+`price` (required, > 0), `stockQuantity` (required, ≥ 0), and `category`. Validation
+failures return `400` with a structured `fieldErrors` map, which is what produces the
+recorded 400 traffic.
+
+> The committed test set covers CRUD, category filters, and the 404/400 paths. It was
+> recorded before `/summary` and `/{id}/stock` were added, so those two endpoints are not
+> in it yet. The curl walkthrough below now exercises them, so a fresh re-record (or a
+> `./seed.sh` run) picks them up.
+
+## Capture the testcases
+
+Keploy brings the whole stack up itself in record mode. In **terminal A**:
+
+```bash
+keploy record -c "docker compose up" \
+ --cmd-type docker-compose \
+ --container-name catalog-app \
+ -n product-catalog_default \
+ --metadata "name=products-crud,description=full CRUD + filters + 404 + 400"
+```
+
+### Generate testcases
+
+To generate testcases we just need to **make some API calls.** You can use
+[Postman](https://www.postman.com/), [Hoppscotch](https://hoppscotch.io/), or simply
+`curl`.
+
+These seven calls exercise every endpoint once, in a natural order — create, read, update,
+adjust, delete — so a single pass records a coherent CRUD suite.
+
+**1. Create a product** (`POST /api/products`):
+
+```bash
+curl --location --request POST 'http://localhost:8080/api/products' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "Mechanical Keyboard",
+ "description": "65% hot-swappable",
+ "price": 129.99,
+ "stockQuantity": 40,
+ "category": "peripherals"
+}'
+```
+
+This returns the created product. `createdAt` is automatically ignored during testing
+because it will always be different.
+
+```json
+{
+ "id": 1,
+ "name": "Mechanical Keyboard",
+ "description": "65% hot-swappable",
+ "price": 129.99,
+ "stockQuantity": 40,
+ "category": "peripherals",
+ "createdAt": "2026-08-05T09:41:12.483Z"
+}
+```
+
+**2. List the catalog, optionally filtered by category** (`GET /api/products`):
+
+```bash
+curl --location --request GET 'http://localhost:8080/api/products'
+curl --location --request GET 'http://localhost:8080/api/products?category=peripherals'
+```
+
+**3. Roll up inventory** (`GET /api/products/summary`) — counts totals and flags anything
+at or below the low-stock threshold:
+
+```bash
+curl --location --request GET 'http://localhost:8080/api/products/summary?lowStockThreshold=15'
+```
+
+**4. Fetch a single product by id** (`GET /api/products/{id}`):
+
+```bash
+curl --location --request GET 'http://localhost:8080/api/products/1'
+```
+
+**5. Replace a product** (`PUT /api/products/{id}`):
+
+```bash
+curl --location --request PUT 'http://localhost:8080/api/products/1' \
+--header 'Content-Type: application/json' \
+--data-raw '{"name":"Keyboard v2","price":149.99,"stockQuantity":35,"category":"peripherals"}'
+```
+
+**6. Adjust stock by a delta** (`PATCH /api/products/{id}/stock`) — a negative delta ships
+units, a positive delta restocks; driving stock below zero returns `409`:
+
+```bash
+curl --location --request PATCH 'http://localhost:8080/api/products/1/stock' \
+--header 'Content-Type: application/json' \
+--data-raw '{"delta":-5}'
+```
+
+**7. Delete a product** (`DELETE /api/products/{id}`):
+
+```bash
+curl --location --request DELETE 'http://localhost:8080/api/products/1'
+```
+
+Record an error path or two as well, so the suite covers the `404` and `400` branches:
+
+```bash
+curl --location --request GET 'http://localhost:8080/api/products/99999'
+curl --location --request POST 'http://localhost:8080/api/products' \
+--header 'Content-Type: application/json' \
+--data-raw '{"name":"","price":-5}'
+```
+
+Or skip the manual calls and run the bundled traffic generator, which drives the whole
+workload — 12 products across 6 categories, every read path, updates, deletes, and the
+404/400 cases — in one shot. This is exactly what produced the committed 57-case suite:
+
+```bash
+./seed.sh
+```
+
+Then stop the recording with `Ctrl+C` in terminal A. Keploy writes test cases to
+`keploy/products-crud/tests/` and the recorded Postgres interactions to
+`keploy/products-crud/mocks.yaml`.
+
+Now, let's see the magic! 🪄💫
+
+## Run the test cases
+
+```bash
+keploy test -c "docker compose up" \
+ --cmd-type docker-compose \
+ --container-name catalog-app \
+ -n product-catalog_default \
+ --mappings \
+ --delay 20
+```
+
+Expected:
+
+```
+ "products-crud" Total: 57 Passed: 57 Failed: 0
+```
+
+This will run the testcases and generate the report in the `keploy/reports` folder.
+
+Two flags matter here, and both are already set as defaults in `keploy.yml`:
+
+- `--mappings` pins each test case to only the mocks it recorded, which keeps stateful
+ reads (list-after-delete, get-after-update) correct.
+- `--delay 20` waits for the app to finish booting before the first test fires. Spring
+ Boot takes about 13 seconds; too short a delay races startup and reports `got=0` on the
+ first case.
+
+### Bonus: replay with no database at all
+
+`docker-compose.keploy.yml` is an app-only Compose file — there is literally no `postgres`
+service in it. Keploy serves every database call from the recorded mocks, so the app boots
+and passes the full suite with the database entirely absent:
+
+```bash
+keploy test -c "docker compose -f docker-compose.keploy.yml up" \
+ --cmd-type docker-compose --container-name catalog-app -n product-catalog_default \
+ --mappings --delay 20
+```
+
+## What Keploy generated
+
+```
+keploy/
+└── products-crud/
+ ├── config.yaml # test-set metadata (name, description, mock hash)
+ ├── mappings.yaml # which mocks belong to which test case
+ ├── mocks.yaml # 190 PostgresV3 mocks + 2 DNS
+ └── tests/
+ ├── post-api-products-*.yaml # 12 creates + 8 validation 400s
+ ├── get-api-products-*.yaml # list + category filters + post-delete lists
+ ├── get-api-products-by-id-*.yaml # reads + 404s
+ ├── put-api-products-by-id-*.yaml # updates + invalid + 404
+ └── delete-api-products-by-id-*.yaml
+```
+
+A recorded test case is just the request plus the expected response, with the
+non-deterministic fields marked as noise automatically:
+
+```yaml
+kind: Http
+name: post-api-products-1
+spec:
+ req: { method: POST, url: .../api/products, body: '{"name":"Mechanical Keyboard",...}' }
+ resp: { status_code: 201, body: '{"id":1,"name":"Mechanical Keyboard",...,"createdAt":"..."}' }
+ assertions:
+ noise:
+ body.createdAt: [] # Keploy detected this is non-deterministic
+ header.Date: []
+```
+
+## Troubleshooting
+
+- **First test case fails with `got=0`.** The delay was too short and the request raced
+ Spring Boot's startup. Raise `--delay`.
+- **Replay fails on stateful reads.** Make sure `--mappings` is on, otherwise a
+ list-after-delete test can be served mocks recorded from a different point in time.
+- **`network product-catalog_default not found`.** Compose derives the network from the
+ project name, which this sample pins via `name: product-catalog` in
+ `docker-compose.yml`. If you renamed the project, pass your own name to `-n`.
+
+## Files
+
+| Path | Purpose |
+|---|---|
+| `src/main/java/io/keploy/productcatalog/` | Application source — controller, service, JPA repository, DTOs, exception handler |
+| `src/main/resources/application.properties` | Datasource and JPA configuration |
+| `pom.xml` | Spring Boot, Java 21, Spring Data JPA, validation, Actuator, Postgres driver |
+| `Dockerfile` | Multi-stage build: Temurin 21 JDK → JRE runtime |
+| `docker-compose.yml` | App + Postgres, for running and recording |
+| `docker-compose.keploy.yml` | App only, no database — for the dependency-free replay |
+| `keploy.yml` | Keploy config: Compose command, container/network names, noise rules |
+| `keploy/products-crud/` | The recorded test set: 57 test cases + mocks |
+| `seed.sh` | Traffic generator used during `keploy record` |
diff --git a/spring-boot-product-catalog/docker-compose.keploy.yml b/spring-boot-product-catalog/docker-compose.keploy.yml
new file mode 100644
index 00000000..f88473cd
--- /dev/null
+++ b/spring-boot-product-catalog/docker-compose.keploy.yml
@@ -0,0 +1,17 @@
+# App-only compose for the Keploy replay demo — NOTICE: there is NO postgres service here.
+# Keploy serves every database call from the mocks it recorded, so the Spring Boot app
+# boots and passes its whole test suite with the database entirely absent.
+name: product-catalog
+
+services:
+ app:
+ build: .
+ container_name: catalog-app
+ environment:
+ # Still points at "postgres" — but nothing is running there. Keploy intercepts the
+ # connection and replays the recorded Postgres traffic instead.
+ SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/catalog
+ SPRING_DATASOURCE_USERNAME: catalog
+ SPRING_DATASOURCE_PASSWORD: catalog
+ ports:
+ - "8080:8080"
diff --git a/spring-boot-product-catalog/docker-compose.yml b/spring-boot-product-catalog/docker-compose.yml
new file mode 100644
index 00000000..50495849
--- /dev/null
+++ b/spring-boot-product-catalog/docker-compose.yml
@@ -0,0 +1,48 @@
+# Pinned so the Compose network is always product-catalog_default, whatever the
+# clone directory is called — Keploy is passed that exact name via -n.
+name: product-catalog
+
+services:
+ postgres:
+ image: postgres:17-alpine
+ container_name: catalog-postgres
+ environment:
+ POSTGRES_DB: catalog
+ POSTGRES_USER: catalog
+ POSTGRES_PASSWORD: catalog
+ ports:
+ - "5432:5432"
+ volumes:
+ - catalog-pgdata:/var/lib/postgresql/data
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U catalog -d catalog"]
+ interval: 3s
+ timeout: 3s
+ retries: 10
+
+ app:
+ build: .
+ container_name: catalog-app
+ depends_on:
+ postgres:
+ condition: service_healthy
+ environment:
+ SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/catalog
+ SPRING_DATASOURCE_USERNAME: catalog
+ SPRING_DATASOURCE_PASSWORD: catalog
+ ports:
+ - "8080:8080"
+ healthcheck:
+ # Uses the curl installed in the runtime image + Actuator's readiness probe.
+ # Makes `docker compose up --wait` block until the app is actually ready, not just running.
+ # Deliberately the readiness probe (not /actuator/health): the aggregate health endpoint
+ # runs the JDBC `db` indicator on every poll, which Keploy would record as extra Postgres
+ # mocks during `keploy record`. The readiness group doesn't touch the DB, so capture stays clean.
+ test: ["CMD-SHELL", "curl -fsS http://localhost:8080/actuator/health/readiness || exit 1"]
+ interval: 5s
+ timeout: 3s
+ retries: 12
+ start_period: 15s
+
+volumes:
+ catalog-pgdata:
diff --git a/spring-boot-product-catalog/keploy.yml b/spring-boot-product-catalog/keploy.yml
new file mode 100755
index 00000000..e80a592c
--- /dev/null
+++ b/spring-boot-product-catalog/keploy.yml
@@ -0,0 +1,110 @@
+# Generated by Keploy (3.5.95), trimmed to the keys this sample actually needs.
+path: ""
+appName: product-catalog
+appId: 0
+command: docker compose up
+templatize:
+ testSets: []
+port: 0
+e2e: false
+dnsPort: 26789
+proxyPort: 16789
+incomingProxyPort: 36789
+debug: false
+disableTele: false
+disableANSI: false
+jsonOutput: false
+# The app runs in Compose; `name: product-catalog` is pinned in docker-compose.yml
+# so this network name holds no matter what the clone directory is called.
+containerName: catalog-app
+networkName: product-catalog_default
+buildDelay: 30
+test:
+ selectedTests: {}
+ globalNoise:
+ global:
+ # Keploy already auto-marks these per test case; repeating them
+ # globally keeps a re-recorded suite deterministic too.
+ body.createdAt: []
+ header.Date: []
+ test-sets: {}
+ replaceWith:
+ global:
+ url: {}
+ port: {}
+ test-sets: {}
+ # Spring Boot needs ~13s to boot; a shorter delay races the first test case
+ # and reports got=0 on it.
+ delay: 20
+ host: localhost
+ port: 0
+ apiTimeout: 5
+ skipCoverage: false
+ coverageReportPath: ""
+ ignoreOrdering: true
+ mongoPassword: default@123
+ language: ""
+ removeUnusedMocks: false
+ preserveFailedMocks: false
+ fallBackOnMiss: false
+ jacocoAgentPath: ""
+ basePath: ""
+ mocking: true
+ ignoredTests: {}
+ disableLineCoverage: false
+ disableMockUpload: true
+ useLocalMock: false
+ updateTemplate: false
+ mustPass: false
+ maxFailAttempts: 5
+ maxFlakyChecks: 1
+ compareAll: false
+ schemaMatch: false
+ updateTestMapping: false
+ disableAutoHeaderNoise: false
+ strictMockWindow: true
+ # Pins each test case to the mocks recorded for it, so stateful reads
+ # (list-after-delete, get-after-update) replay against the right DB state.
+ mappings: true
+record:
+ filters: []
+ basePath: ""
+ recordTimer: 0s
+ metadata: ""
+ testCaseNaming: descriptive
+ sync: false
+ enableSampling: 0
+ memoryLimit: 0
+ globalPassthrough: false
+ tlsPrivateKeyPath: ""
+report:
+ selectedTestSets: {}
+ showFullBody: false
+ reportPath: ""
+ summary: false
+ testCaseIDs: []
+ format: ""
+disableMapping: false
+retryPassing: false
+configPath: ""
+bypassRules: []
+generateGithubActions: false
+keployContainer: keploy-v3
+keployNetwork: keploy-network
+cmdType: docker-compose
+contract:
+ services: []
+ tests: []
+ path: ""
+ download: false
+ generate: false
+ driven: consumer
+ mappings:
+ servicesMapping: {}
+ self: s1
+inCi: false
+serverPort: 0
+mockDownload:
+ registryIds: []
+
+# Visit [https://keploy.io/docs/running-keploy/configuration-file/] to learn about using keploy through configuration file.
diff --git a/spring-boot-product-catalog/keploy/.gitignore b/spring-boot-product-catalog/keploy/.gitignore
new file mode 100644
index 00000000..f5dbb873
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/.gitignore
@@ -0,0 +1,2 @@
+/reports/
+**/agent-debug.log
diff --git a/spring-boot-product-catalog/keploy/products-crud/config.yaml b/spring-boot-product-catalog/keploy/products-crud/config.yaml
new file mode 100644
index 00000000..f33c0903
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/config.yaml
@@ -0,0 +1,10 @@
+preScript: ""
+postScript: ""
+appCommand: ""
+template: {}
+metadata:
+ description: full CRUD across categories + filters + 404 + 400 validation
+ name: products-crud
+mockRegistry:
+ mock: 9ad0466a7385cfa1465bf1f65c95f2a5eef7be7984aea8dd598619ab35a6871c
+ app: product-catalog
diff --git a/spring-boot-product-catalog/keploy/products-crud/mappings.yaml b/spring-boot-product-catalog/keploy/products-crud/mappings.yaml
new file mode 100644
index 00000000..17583d90
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/mappings.yaml
@@ -0,0 +1,846 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: TestMocksMapping
+test_set_id: products-crud
+tests:
+ - id: get-api-products-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-137
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.441169673Z"
+ resTimestampMock: "2026-08-05T09:47:53.442449465Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: delete-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-171
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.728023965Z"
+ resTimestampMock: "2026-08-05T09:47:53.72844359Z"
+ - name: mock-172
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.729839382Z"
+ resTimestampMock: "2026-08-05T09:47:53.73016509Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: put-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-160
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.658563673Z"
+ resTimestampMock: "2026-08-05T09:47:53.658882173Z"
+ - name: mock-161
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.660541715Z"
+ resTimestampMock: "2026-08-05T09:47:53.66103009Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-178
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.772068173Z"
+ resTimestampMock: "2026-08-05T09:47:53.772437048Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-83
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.125194089Z"
+ resTimestampMock: "2026-08-05T09:47:52.125414131Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-59
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.899644047Z"
+ resTimestampMock: "2026-08-05T09:47:51.900056381Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-47
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.53024938Z"
+ resTimestampMock: "2026-08-05T09:47:51.530576005Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-98
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.270684797Z"
+ resTimestampMock: "2026-08-05T09:47:52.271191256Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-68
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.984144964Z"
+ resTimestampMock: "2026-08-05T09:47:51.984652089Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-12
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-122
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.440293881Z"
+ resTimestampMock: "2026-08-05T09:47:52.440614006Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-17
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-184
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.829325465Z"
+ resTimestampMock: "2026-08-05T09:47:53.829910548Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.794472507Z"
+ resTimestampMock: "2026-08-05T09:47:53.794685382Z"
+ - id: get-api-products-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-44
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780988672Z"
+ resTimestampMock: "2026-08-05T09:47:50.782420588Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-134
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.396563131Z"
+ resTimestampMock: "2026-08-05T09:47:53.397424215Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-92
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.221113714Z"
+ resTimestampMock: "2026-08-05T09:47:52.221878464Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-80
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.099786506Z"
+ resTimestampMock: "2026-08-05T09:47:52.100031006Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-71
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.010881381Z"
+ resTimestampMock: "2026-08-05T09:47:52.011236797Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-104
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.312949714Z"
+ resTimestampMock: "2026-08-05T09:47:52.313411464Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-131
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.361986715Z"
+ resTimestampMock: "2026-08-05T09:47:53.362649548Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: put-api-products-by-id-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-153
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.610412923Z"
+ resTimestampMock: "2026-08-05T09:47:53.610776215Z"
+ - name: mock-154
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.61306284Z"
+ resTimestampMock: "2026-08-05T09:47:53.613768423Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-56
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.875052589Z"
+ resTimestampMock: "2026-08-05T09:47:51.875578589Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-86
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.159595547Z"
+ resTimestampMock: "2026-08-05T09:47:52.160122464Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-15
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-164
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.67993934Z"
+ resTimestampMock: "2026-08-05T09:47:53.68026109Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-74
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.037338381Z"
+ resTimestampMock: "2026-08-05T09:47:52.037771422Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-77
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.073007214Z"
+ resTimestampMock: "2026-08-05T09:47:52.073631089Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: put-api-products-by-id-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-187
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.859003257Z"
+ resTimestampMock: "2026-08-05T09:47:53.859485257Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.794472507Z"
+ resTimestampMock: "2026-08-05T09:47:53.794685382Z"
+ - id: get-api-products-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-143
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.505831715Z"
+ resTimestampMock: "2026-08-05T09:47:53.506370798Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-101
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.292355464Z"
+ resTimestampMock: "2026-08-05T09:47:52.292859006Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-62
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.927955881Z"
+ resTimestampMock: "2026-08-05T09:47:51.928482631Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-175
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.749170382Z"
+ resTimestampMock: "2026-08-05T09:47:53.749575757Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-6
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-65
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.955141339Z"
+ resTimestampMock: "2026-08-05T09:47:51.955490881Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-2
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-53
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.846853214Z"
+ resTimestampMock: "2026-08-05T09:47:51.847352464Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-10
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-116
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.402408131Z"
+ resTimestampMock: "2026-08-05T09:47:52.402836214Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-4
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-125
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.285848048Z"
+ resTimestampMock: "2026-08-05T09:47:53.287752631Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-14
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-157
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.635581965Z"
+ resTimestampMock: "2026-08-05T09:47:53.635869173Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-8
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-110
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.356676256Z"
+ resTimestampMock: "2026-08-05T09:47:52.357077923Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-95
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.243478422Z"
+ resTimestampMock: "2026-08-05T09:47:52.244070422Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-13
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-150
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.583612631Z"
+ resTimestampMock: "2026-08-05T09:47:53.584026673Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-11
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-119
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.420297798Z"
+ resTimestampMock: "2026-08-05T09:47:52.420634006Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-7
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-107
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.334785673Z"
+ resTimestampMock: "2026-08-05T09:47:52.335133048Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-16
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-181
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.792379507Z"
+ resTimestampMock: "2026-08-05T09:47:53.792659465Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.794472507Z"
+ resTimestampMock: "2026-08-05T09:47:53.794685382Z"
+ - id: get-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-89
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.195893464Z"
+ resTimestampMock: "2026-08-05T09:47:52.196562089Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-by-id-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-113
+ kind: PostgresV3
+ timestamp: 1785923272
+ reqTimestampMock: "2026-08-05T09:47:52.380234173Z"
+ resTimestampMock: "2026-08-05T09:47:52.380658298Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-9
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-140
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.475508256Z"
+ resTimestampMock: "2026-08-05T09:47:53.476110715Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: get-api-products-5
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-128
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.327987173Z"
+ resTimestampMock: "2026-08-05T09:47:53.328826465Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: post-api-products-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-50
+ kind: PostgresV3
+ timestamp: 1785923271
+ reqTimestampMock: "2026-08-05T09:47:51.787114006Z"
+ resTimestampMock: "2026-08-05T09:47:51.788629672Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: put-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-146
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.53589159Z"
+ resTimestampMock: "2026-08-05T09:47:53.536561381Z"
+ - name: mock-147
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.55347709Z"
+ resTimestampMock: "2026-08-05T09:47:53.554577756Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: delete-api-products-by-id-1
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-167
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.700873548Z"
+ resTimestampMock: "2026-08-05T09:47:53.701242506Z"
+ - name: mock-168
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.70749034Z"
+ resTimestampMock: "2026-08-05T09:47:53.70785459Z"
+ - name: mock-45
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.803576297Z"
+ resTimestampMock: "2026-08-05T09:47:50.80382238Z"
+ - id: delete-api-products-by-id-3
+ mock_entries:
+ - name: mock-43
+ kind: PostgresV3
+ timestamp: 1785923270
+ reqTimestampMock: "2026-08-05T09:47:50.780304755Z"
+ resTimestampMock: "2026-08-05T09:47:50.780679005Z"
+ - name: mock-190
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.887699757Z"
+ resTimestampMock: "2026-08-05T09:47:53.888236507Z"
+ - name: mock-182
+ kind: PostgresV3
+ timestamp: 1785923273
+ reqTimestampMock: "2026-08-05T09:47:53.794472507Z"
+ resTimestampMock: "2026-08-05T09:47:53.794685382Z"
diff --git a/spring-boot-product-catalog/keploy/products-crud/mocks.yaml b/spring-boot-product-catalog/keploy/products-crud/mocks.yaml
new file mode 100644
index 00000000..f48e6327
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/mocks.yaml
@@ -0,0 +1,9212 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: DNS
+name: mock-0
+spec:
+ metadata:
+ name: DNS
+ qtype: AAAA
+ type: config
+ request:
+ name: postgres.
+ qtype: 28
+ qclass: 1
+ response:
+ rcode: 0
+ authoritative: false
+ recursionAvailable: true
+ truncated: false
+ reqTimestampMock: 2026-08-05T09:47:43.363938085Z
+ resTimestampMock: 2026-08-05T09:47:43.365271043Z
+---
+version: api.keploy.io/v1beta1
+kind: DNS
+name: mock-1
+spec:
+ metadata:
+ name: DNS
+ qtype: A
+ type: config
+ request:
+ name: postgres.
+ qtype: 1
+ qclass: 1
+ response:
+ rcode: 0
+ authoritative: false
+ recursionAvailable: true
+ truncated: false
+ answers:
+ - "postgres.\t600\tIN\tA\t172.19.0.2"
+ reqTimestampMock: 2026-08-05T09:47:43.364401627Z
+ resTimestampMock: 2026-08-05T09:47:43.365587335Z
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-2
+spec:
+ metadata:
+ connID: "0"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:43.395199752Z
+ resTimestampMock: 2026-08-05T09:47:43.39558646Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-3
+spec:
+ metadata:
+ connID: "0"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 89
+ backendSecretKey: 1570673303
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:43.398372252Z
+ resTimestampMock: 2026-08-05T09:47:43.528343168Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-4
+spec:
+ metadata:
+ class: SESSION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:0:2026-08-05T09:47:43.732985502Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:43.732985502Z
+ resTimestampMock: 2026-08-05T09:47:43.735929752Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-5
+spec:
+ metadata:
+ class: SESSION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1
+ sqlNormalized: SHOW TRANSACTION ISOLATION LEVEL
+ invocationId: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1:0:2026-08-05T09:47:43.792630585Z:2
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: transaction_isolation
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - read committed
+ commandComplete: SHOW
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:43.792630585Z
+ resTimestampMock: 2026-08-05T09:47:43.795450418Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-6
+spec:
+ metadata:
+ class: CATALOG
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: CATALOG
+ lifetime: session
+ sqlAstHash: sha256:af513b7fc519fd88cbd287b36a1a06a6477206fece5f4d129540fd9d2ecd7aaa
+ sqlNormalized: select string_agg(word, $1) from pg_catalog.pg_get_keywords() where word <> ALL ($2::text[])
+ invocationId: sha256:af513b7fc519fd88cbd287b36a1a06a6477206fece5f4d129540fd9d2ecd7aaa:0:2026-08-05T09:47:43.953154085Z:3
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: string_agg
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - abort,absent,access,aggregate,also,analyse,analyze,attach,backward,bit,cache,checkpoint,class,cluster,columns,comment,comments,compression,concurrently,conditional,configuration,conflict,connection,content,conversion,copy,cost,csv,current_catalog,current_schema,database,delimiter,delimiters,depends,detach,dictionary,disable,discard,do,document,empty,enable,encoding,encrypted,enum,error,event,exclusive,explain,expression,extension,family,finalize,force,format,forward,freeze,functions,generated,greatest,groups,handler,header,if,ilike,immutable,implicit,import,include,indent,index,indexes,inherit,inherits,inline,instead,isnull,json,json_array,json_arrayagg,json_exists,json_object,json_objectagg,json_query,json_scalar,json_serialize,json_table,json_value,keep,keys,label,leakproof,least,limit,listen,load,location,lock,locked,logged,mapping,materialized,merge_action,mode,move,nested,nfc,nfd,nfkc,nfkd,nothing,notify,notnull,nowait,off,offset,oids,omit,operator,owned,owner,parallel,parser,passing,password,plan,plans,policy,prepared,procedural,procedures,program,publication,quote,quotes,reassign,recheck,refresh,reindex,rename,replace,replica,reset,restrict,returning,routines,rule,scalar,schemas,sequences,server,setof,share,show,skip,snapshot,stable,standalone,statistics,stdin,stdout,storage,stored,strict,string,strip,subscription,support,sysid,tables,tablespace,target,temp,template,text,truncate,trusted,types,unconditional,unencrypted,unlisten,unlogged,until,vacuum,valid,validate,validator,variadic,verbose,version,views,volatile,whitespace,wrapper,xml,xmlattributes,xmlconcat,xmlelement,xmlexists,xmlforest,xmlnamespaces,xmlparse,xmlpi,xmlroot,xmlserialize,xmltable,yes
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:43.953154085Z
+ resTimestampMock: 2026-08-05T09:47:43.971701752Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-7
+spec:
+ metadata:
+ connID: "2"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:43.987929502Z
+ resTimestampMock: 2026-08-05T09:47:43.990566544Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-8
+spec:
+ metadata:
+ connID: "2"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 90
+ backendSecretKey: 1516982670
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:43.991022919Z
+ resTimestampMock: 2026-08-05T09:47:44.116627419Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-9
+spec:
+ metadata:
+ class: SESSION
+ connID: "2"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:2:2026-08-05T09:47:44.126023627Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.126023627Z
+ resTimestampMock: 2026-08-05T09:47:44.12836771Z
+connectionId: "2"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-10
+spec:
+ metadata:
+ class: VALIDATION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: VALIDATION
+ lifetime: session
+ sqlAstHash: sha256:f0a8e37c2db38f7af30066abf3a0f2e05fdd4ef9bb13acc0c53842c726937bf9
+ sqlNormalized: select version()
+ invocationId: sha256:f0a8e37c2db38f7af30066abf3a0f2e05fdd4ef9bb13acc0c53842c726937bf9:0:2026-08-05T09:47:44.128919627Z:4
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: version
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - PostgreSQL 17.10 on aarch64-unknown-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.128919627Z
+ resTimestampMock: 2026-08-05T09:47:44.133486752Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-11
+spec:
+ metadata:
+ connID: "4"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.181819169Z
+ resTimestampMock: 2026-08-05T09:47:44.185133669Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-12
+spec:
+ metadata:
+ connID: "4"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 91
+ backendSecretKey: 1281459909
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.18544396Z
+ resTimestampMock: 2026-08-05T09:47:44.215953335Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-13
+spec:
+ metadata:
+ class: SESSION
+ connID: "4"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:4:2026-08-05T09:47:44.219319294Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.219319294Z
+ resTimestampMock: 2026-08-05T09:47:44.220617919Z
+connectionId: "4"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-14
+spec:
+ metadata:
+ connID: "6"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.259753752Z
+ resTimestampMock: 2026-08-05T09:47:44.260418585Z
+connectionId: "6"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-15
+spec:
+ metadata:
+ class: VALIDATION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: VALIDATION
+ lifetime: session
+ sqlAstHash: sha256:a0dd9013c5be0ecf56e918b289f5d109a7e646ce68a44f269f4885d0ec385608
+ sqlNormalized: select current_schema()
+ invocationId: sha256:a0dd9013c5be0ecf56e918b289f5d109a7e646ce68a44f269f4885d0ec385608:0:2026-08-05T09:47:44.263920002Z:5
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: current_schema
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ rows:
+ - - public
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.263920002Z
+ resTimestampMock: 2026-08-05T09:47:44.264745127Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-16
+spec:
+ metadata:
+ class: VALIDATION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: VALIDATION
+ lifetime: session
+ sqlAstHash: sha256:a35a118a41caa512dda6164b2454bc37f9f46d5f32535588c29a7b79bf8eb680
+ sqlNormalized: select current_catalog
+ invocationId: sha256:a35a118a41caa512dda6164b2454bc37f9f46d5f32535588c29a7b79bf8eb680:0:2026-08-05T09:47:44.270295919Z:6
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: current_catalog
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ rows:
+ - - catalog
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.270295919Z
+ resTimestampMock: 2026-08-05T09:47:44.27098596Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-17
+spec:
+ metadata:
+ connID: "6"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 92
+ backendSecretKey: -712285378
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.260835294Z
+ resTimestampMock: 2026-08-05T09:47:44.272657794Z
+connectionId: "6"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-18
+spec:
+ metadata:
+ class: SESSION
+ connID: "6"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:6:2026-08-05T09:47:44.273994044Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.273994044Z
+ resTimestampMock: 2026-08-05T09:47:44.274751419Z
+connectionId: "6"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-19
+spec:
+ metadata:
+ class: CATALOG
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: CATALOG
+ lifetime: session
+ sqlAstHash: sha256:7563dbca6c43bce5f3912757a488487b302ceacf4ae7783bc7e6036bdd379777
+ sqlNormalized: SELECT setting FROM pg_catalog.pg_settings WHERE name=$1
+ invocationId: sha256:7563dbca6c43bce5f3912757a488487b302ceacf4ae7783bc7e6036bdd379777:0:2026-08-05T09:47:44.273495544Z:7
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: setting
+ tableOid: 12104
+ colAttrNum: 2
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - read committed
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.273495544Z
+ resTimestampMock: 2026-08-05T09:47:44.277974419Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-20
+spec:
+ metadata:
+ class: SESSION
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1
+ sqlNormalized: SHOW TRANSACTION ISOLATION LEVEL
+ invocationId: sha256:b489be1e1f6837f103918e513e0e4decd0c9cb470a8a898f373730416545b5d1:0:2026-08-05T09:47:44.280205044Z:8
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: transaction_isolation
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ rows:
+ - - read committed
+ commandComplete: SHOW
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.280205044Z
+ resTimestampMock: 2026-08-05T09:47:44.280580419Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-21
+spec:
+ metadata:
+ connID: "8"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.317761044Z
+ resTimestampMock: 2026-08-05T09:47:44.318751752Z
+connectionId: "8"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-22
+spec:
+ metadata:
+ connID: "8"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 93
+ backendSecretKey: 1387935182
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.319120585Z
+ resTimestampMock: 2026-08-05T09:47:44.33074896Z
+connectionId: "8"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-23
+spec:
+ metadata:
+ class: SESSION
+ connID: "8"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:8:2026-08-05T09:47:44.331718877Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.331718877Z
+ resTimestampMock: 2026-08-05T09:47:44.332338794Z
+connectionId: "8"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-24
+spec:
+ metadata:
+ connID: "10"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.367987627Z
+ resTimestampMock: 2026-08-05T09:47:44.372051419Z
+connectionId: "10"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-25
+spec:
+ metadata:
+ connID: "10"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 94
+ backendSecretKey: 1117012829
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.37230546Z
+ resTimestampMock: 2026-08-05T09:47:44.385561752Z
+connectionId: "10"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-26
+spec:
+ metadata:
+ class: SESSION
+ connID: "10"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:10:2026-08-05T09:47:44.387122627Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.387122627Z
+ resTimestampMock: 2026-08-05T09:47:44.387675085Z
+connectionId: "10"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-27
+spec:
+ metadata:
+ connID: "12"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.430664002Z
+ resTimestampMock: 2026-08-05T09:47:44.432441002Z
+connectionId: "12"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-28
+spec:
+ metadata:
+ connID: "12"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 95
+ backendSecretKey: -473708753
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.438027669Z
+ resTimestampMock: 2026-08-05T09:47:44.467127877Z
+connectionId: "12"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-29
+spec:
+ metadata:
+ class: SESSION
+ connID: "12"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:12:2026-08-05T09:47:44.468336794Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.468336794Z
+ resTimestampMock: 2026-08-05T09:47:44.472110252Z
+connectionId: "12"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-30
+spec:
+ metadata:
+ connID: "14"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.509108044Z
+ resTimestampMock: 2026-08-05T09:47:44.510687127Z
+connectionId: "14"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-31
+spec:
+ metadata:
+ connID: "14"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 96
+ backendSecretKey: 247678643
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.510942752Z
+ resTimestampMock: 2026-08-05T09:47:44.521158002Z
+connectionId: "14"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-32
+spec:
+ metadata:
+ class: SESSION
+ connID: "14"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:14:2026-08-05T09:47:44.524340252Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.524340252Z
+ resTimestampMock: 2026-08-05T09:47:44.525261752Z
+connectionId: "14"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-33
+spec:
+ metadata:
+ connID: "16"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.560853794Z
+ resTimestampMock: 2026-08-05T09:47:44.561693335Z
+connectionId: "16"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-34
+spec:
+ metadata:
+ connID: "16"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 97
+ backendSecretKey: -1204386272
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.561996669Z
+ resTimestampMock: 2026-08-05T09:47:44.575476585Z
+connectionId: "16"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-35
+spec:
+ metadata:
+ class: SESSION
+ connID: "16"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:16:2026-08-05T09:47:44.57977296Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.57977296Z
+ resTimestampMock: 2026-08-05T09:47:44.581012169Z
+connectionId: "16"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-36
+spec:
+ metadata:
+ connID: "18"
+ lifetime: connection
+ tls_stage: prelude
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ reqTimestampMock: 2026-08-05T09:47:44.627988127Z
+ resTimestampMock: 2026-08-05T09:47:44.628956211Z
+connectionId: "18"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-37
+spec:
+ metadata:
+ connID: "18"
+ lifetime: connection
+ type: config
+ postgresV3:
+ type: session
+ session:
+ protocolVersion: "3.0"
+ sslResponse: "N"
+ serverVersion: "17.10"
+ parameterStatus:
+ DateStyle: ISO, MDY
+ IntervalStyle: postgres
+ TimeZone: Etc/UTC
+ application_name: ""
+ client_encoding: UTF8
+ default_transaction_read_only: "off"
+ in_hot_standby: "off"
+ integer_datetimes: "on"
+ is_superuser: "on"
+ scram_iterations: "4096"
+ server_encoding: UTF8
+ server_version: "17.10"
+ session_authorization: catalog
+ standard_conforming_strings: "on"
+ backendProcessID: 98
+ backendSecretKey: 1928555935
+ observedAuthMode: scram
+ reqTimestampMock: 2026-08-05T09:47:44.630094086Z
+ resTimestampMock: 2026-08-05T09:47:44.669170419Z
+connectionId: "18"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-38
+spec:
+ metadata:
+ class: SESSION
+ connID: "18"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: SESSION
+ lifetime: session
+ sqlAstHash: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8
+ sqlNormalized: SET application_name = $1
+ invocationId: sha256:69a7b8f573d7c802c166f56395068540d33d508d9e3ba0d15b473590abaddab8:18:2026-08-05T09:47:44.669446044Z:1
+ precedingTxState: idle
+ response:
+ commandComplete: SET
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:44.669446044Z
+ resTimestampMock: 2026-08-05T09:47:44.670092502Z
+connectionId: "18"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-39
+spec:
+ metadata:
+ class: CATALOG
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: CATALOG
+ lifetime: session
+ sqlAstHash: sha256:310dd72f6f1f2491f33fdba09cde16346c26fa93a51996e0a7d71260fb04d9ce
+ sqlNormalized: select * from information_schema.sequences
+ invocationId: sha256:310dd72f6f1f2491f33fdba09cde16346c26fa93a51996e0a7d71260fb04d9ce:0:2026-08-05T09:47:46.250741086Z:9
+ precedingTxState: idle
+ response:
+ rowDescription:
+ - name: sequence_catalog
+ tableOid: 13495
+ colAttrNum: 1
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: sequence_schema
+ tableOid: 13495
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: sequence_name
+ tableOid: 13495
+ colAttrNum: 3
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: data_type
+ tableOid: 13495
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: -1
+ - name: numeric_precision
+ tableOid: 13495
+ colAttrNum: 5
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ - name: numeric_precision_radix
+ tableOid: 13495
+ colAttrNum: 6
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ - name: numeric_scale
+ tableOid: 13495
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ - name: start_value
+ tableOid: 13495
+ colAttrNum: 8
+ typeOid: 1043
+ typeSize: -1
+ typeMod: -1
+ - name: minimum_value
+ tableOid: 13495
+ colAttrNum: 9
+ typeOid: 1043
+ typeSize: -1
+ typeMod: -1
+ - name: maximum_value
+ tableOid: 13495
+ colAttrNum: 10
+ typeOid: 1043
+ typeSize: -1
+ typeMod: -1
+ - name: increment
+ tableOid: 13495
+ colAttrNum: 11
+ typeOid: 1043
+ typeSize: -1
+ typeMod: -1
+ - name: cycle_option
+ tableOid: 13495
+ colAttrNum: 12
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 7
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:46.250741086Z
+ resTimestampMock: 2026-08-05T09:47:46.256930503Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-40
+spec:
+ metadata:
+ class: CATALOG
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: CATALOG
+ lifetime: session
+ sqlAstHash: sha256:3415713d7702e09dde25ce7a909e13e28677566d5a38fa8d24e5cae553ad30ed
+ sqlNormalized: "SELECT current_database() AS \"TABLE_CAT\", n.nspname AS \"TABLE_SCHEM\", c.relname AS \"TABLE_NAME\", CASE n.nspname ~ $3 OR n.nspname = $4 WHEN $5 THEN CASE WHEN n.nspname = $6 OR n.nspname = $7 THEN CASE c.relkind WHEN $8 THEN $9 WHEN $10 THEN $11 WHEN $12 THEN $13 ELSE $14 END WHEN n.nspname = $15 THEN CASE c.relkind WHEN $16 THEN $17 WHEN $18 THEN $19 ELSE $20 END ELSE CASE c.relkind WHEN $21 THEN $22 WHEN $23 THEN $24 WHEN $25 THEN $26 WHEN $27 THEN $28 WHEN $29 THEN $30 ELSE $31 END END WHEN $32 THEN CASE c.relkind WHEN $33 THEN $34 WHEN $35 THEN $36 WHEN $37 THEN $38 WHEN $39 then $40 WHEN $41 THEN $42 WHEN $43 THEN $44 WHEN $45 THEN $46 WHEN $47 THEN $48 WHEN $49 THEN $50 ELSE $51 END ELSE $52 END AS \"TABLE_TYPE\", d.description AS \"REMARKS\", $53 as \"TYPE_CAT\", $54 as \"TYPE_SCHEM\", $55 as \"TYPE_NAME\", $56 AS \"SELF_REFERENCING_COL_NAME\", $57 AS \"REF_GENERATION\" FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid AND d.objsubid = $58 and d.classoid = $59::regclass) WHERE c.relnamespace = n.oid AND n.nspname LIKE $1 AND c.relname LIKE $2 AND ($60 OR ( c.relkind = $61 AND n.nspname !~ $62 AND n.nspname <> $63 ) OR ( c.relkind = $64 AND n.nspname <> $65 AND n.nspname <> $66 ) OR ( c.relkind = $67 ) OR ( c.relkind = $68 AND n.nspname !~ $69 AND n.nspname <> $70 ) ) ORDER BY \"TABLE_TYPE\",\"TABLE_SCHEM\",\"TABLE_NAME\" "
+ paramOids:
+ - 1043
+ - 1043
+ invocationId: sha256:3415713d7702e09dde25ce7a909e13e28677566d5a38fa8d24e5cae553ad30ed:0:2026-08-05T09:47:46.26900892Z:10
+ precedingTxState: idle
+ bindValues:
+ - !!binary cHVibGlj
+ - !!binary JQ==
+ bindFormats:
+ - 0
+ - 0
+ response:
+ rowDescription:
+ - name: TABLE_CAT
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: TABLE_SCHEM
+ tableOid: 2615
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: TABLE_NAME
+ tableOid: 1259
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: TABLE_TYPE
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: REMARKS
+ tableOid: 2609
+ colAttrNum: 4
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: TYPE_CAT
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: TYPE_SCHEM
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: TYPE_NAME
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: SELF_REFERENCING_COL_NAME
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: REF_GENERATION
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:46.26900892Z
+ resTimestampMock: 2026-08-05T09:47:46.273099336Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-41
+spec:
+ metadata:
+ class: CATALOG
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: CATALOG
+ lifetime: session
+ sqlAstHash: sha256:f6cb238ae2fa5e21bdfb322ef234c2e2f41a4aa2036237b49fc8d3499cf3f108
+ sqlNormalized: "SELECT * FROM (SELECT current_database() AS current_database, n.nspname,c.relname,a.attname,a.atttypid,a.attnotnull OR (t.typtype = $3 AND t.typnotnull) AS attnotnull,a.atttypmod,a.attlen,t.typtypmod,row_number() OVER (PARTITION BY a.attrelid ORDER BY a.attnum) AS attnum, nullif(a.attidentity, $4) as attidentity,nullif(a.attgenerated, $5) as attgenerated,pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS adsrc,dsc.description,t.typbasetype,t.typtype FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_class c ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (a.attrelid=c.oid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) LEFT JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid) LEFT JOIN pg_catalog.pg_class dc ON (dc.oid=dsc.classoid AND dc.relname=$6) LEFT JOIN pg_catalog.pg_namespace dn ON (dc.relnamespace=dn.oid AND dn.nspname=$7) WHERE c.relkind in ($8,$9,$10,$11,$12) and a.attnum > $13 AND NOT a.attisdropped AND n.nspname LIKE $1) c WHERE $14 AND attname LIKE $2 ORDER BY nspname,c.relname,attnum "
+ paramOids:
+ - 1043
+ - 1043
+ invocationId: sha256:f6cb238ae2fa5e21bdfb322ef234c2e2f41a4aa2036237b49fc8d3499cf3f108:0:2026-08-05T09:47:46.275015711Z:11
+ precedingTxState: idle
+ bindValues:
+ - !!binary cHVibGlj
+ - !!binary JQ==
+ bindFormats:
+ - 0
+ - 0
+ response:
+ rowDescription:
+ - name: current_database
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: nspname
+ tableOid: 2615
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: relname
+ tableOid: 1259
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: attname
+ tableOid: 1249
+ colAttrNum: 2
+ typeOid: 19
+ typeSize: 64
+ typeMod: -1
+ - name: atttypid
+ tableOid: 1249
+ colAttrNum: 3
+ typeOid: 26
+ typeSize: 4
+ typeMod: -1
+ - name: attnotnull
+ typeOid: 16
+ typeSize: 1
+ typeMod: -1
+ - name: atttypmod
+ tableOid: 1249
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ - name: attlen
+ tableOid: 1249
+ colAttrNum: 4
+ typeOid: 21
+ typeSize: 2
+ typeMod: -1
+ - name: typtypmod
+ tableOid: 1247
+ colAttrNum: 27
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ - name: attnum
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: attidentity
+ typeOid: 18
+ typeSize: 1
+ typeMod: -1
+ - name: attgenerated
+ typeOid: 18
+ typeSize: 1
+ typeMod: -1
+ - name: adsrc
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: description
+ tableOid: 2609
+ colAttrNum: 4
+ typeOid: 25
+ typeSize: -1
+ typeMod: -1
+ - name: typbasetype
+ tableOid: 1247
+ colAttrNum: 26
+ typeOid: 26
+ typeSize: 4
+ typeMod: -1
+ - name: typtype
+ tableOid: 1247
+ colAttrNum: 7
+ typeOid: 18
+ typeSize: 1
+ typeMod: -1
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:46.275015711Z
+ resTimestampMock: 2026-08-05T09:47:46.280556795Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-42
+spec:
+ metadata:
+ class: DDL
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: DDL
+ lifetime: session
+ sqlAstHash: sha256:25f6e8bd80295e5521078514fb0d3ecf3c6b71d1d0b0c3c4a73d00625410afe1
+ sqlNormalized: create table products (id bigint generated by default as identity, category varchar(255), created_at timestamp(6) with time zone not null, description varchar(1000), name varchar(255) not null, price numeric(12,2) not null, stock_quantity integer not null, primary key (id))
+ invocationId: sha256:25f6e8bd80295e5521078514fb0d3ecf3c6b71d1d0b0c3c4a73d00625410afe1:0:2026-08-05T09:47:46.28548242Z:12
+ precedingTxState: idle
+ response:
+ commandComplete: CREATE TABLE
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:46.28548242Z
+ resTimestampMock: 2026-08-05T09:47:46.292536003Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-43
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:50.780304755Z:13
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:50.780304755Z
+ resTimestampMock: 2026-08-05T09:47:50.780679005Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-44
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0
+ invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:50.780988672Z:14
+ precedingTxState: in_tx
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:50.780988672Z
+ resTimestampMock: 2026-08-05T09:47:50.782420588Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-45
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:50.803576297Z:15
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:50.803576297Z
+ resTimestampMock: 2026-08-05T09:47:50.80382238Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-46
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.53016213Z:16
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.53016213Z
+ resTimestampMock: 2026-08-05T09:47:51.530547422Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-47
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0
+ invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:51.53024938Z:17
+ precedingTxState: in_tx
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.53024938Z
+ resTimestampMock: 2026-08-05T09:47:51.530576005Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-48
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.531850505Z:18
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.531850505Z
+ resTimestampMock: 2026-08-05T09:47:51.532013339Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-49
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.787011297Z:19
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.787011297Z
+ resTimestampMock: 2026-08-05T09:47:51.787262089Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-50
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.787114006Z:20
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS43NjUyMjcrMDA=
+ - !!binary NjUlIGhvdC1zd2FwcGFibGU=
+ - !!binary TWVjaGFuaWNhbCBLZXlib2FyZA==
+ - !!binary AAIAAAAAAAIAgSas
+ - !!binary AAAAKA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 1
+ - peripherals
+ - 2026-08-05T09:47:51.765227Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.787114006Z
+ resTimestampMock: 2026-08-05T09:47:51.788629672Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-51
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.805250297Z:21
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.805250297Z
+ resTimestampMock: 2026-08-05T09:47:51.806122964Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-52
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.846806297Z:22
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.846806297Z
+ resTimestampMock: 2026-08-05T09:47:51.847021714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-53
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.846853214Z:23
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44NDYxNDQrMDA=
+ - !!binary Ny1pbi0xIGFsdW1pbml1bQ==
+ - !!binary VVNCLUMgSHVi
+ - !!binary AAIAAAAAAAIAJxOI
+ - !!binary AAAAZA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 2
+ - peripherals
+ - 2026-08-05T09:47:51.846144Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.846853214Z
+ resTimestampMock: 2026-08-05T09:47:51.847352464Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-54
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.848557047Z:24
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.848557047Z
+ resTimestampMock: 2026-08-05T09:47:51.849289756Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-55
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.874993547Z:25
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.874993547Z
+ resTimestampMock: 2026-08-05T09:47:51.875160631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-56
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.875052589Z:26
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44NzQ0ODUrMDA=
+ - !!binary ZXJnb25vbWljLCAyLjRHSHo=
+ - !!binary V2lyZWxlc3MgTW91c2U=
+ - !!binary AAIAAAAAAAIAGCas
+ - !!binary AAAAlg==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 3
+ - peripherals
+ - 2026-08-05T09:47:51.874485Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.875052589Z
+ resTimestampMock: 2026-08-05T09:47:51.875578589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-57
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.876463214Z:27
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.876463214Z
+ resTimestampMock: 2026-08-05T09:47:51.876863589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-58
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.899540756Z:28
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.899540756Z
+ resTimestampMock: 2026-08-05T09:47:51.899755047Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-59
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.899644047Z:29
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS44OTkwMiswMA==
+ - !!binary SVBTLCA2MEh6
+ - !!binary MjctaW5jaCA0SyBNb25pdG9y
+ - !!binary AAEAAAAAAAIBSQ==
+ - !!binary AAAAGQ==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 4
+ - monitors
+ - 2026-08-05T09:47:51.89902Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.899644047Z
+ resTimestampMock: 2026-08-05T09:47:51.900056381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-60
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.901056964Z:30
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.901056964Z
+ resTimestampMock: 2026-08-05T09:47:51.901623672Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-61
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.927394506Z:31
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.927394506Z
+ resTimestampMock: 2026-08-05T09:47:51.927707672Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-62
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.927955881Z:32
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45MjY4NzErMDA=
+ - !!binary Y3VydmVkLCAxNDRIeg==
+ - !!binary MzQtaW5jaCBVbHRyYXdpZGUgTW9uaXRvcg==
+ - !!binary AAEAAAAAAAICVw==
+ - !!binary AAAADA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 5
+ - monitors
+ - 2026-08-05T09:47:51.926871Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.927955881Z
+ resTimestampMock: 2026-08-05T09:47:51.928482631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-63
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.929394922Z:33
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.929394922Z
+ resTimestampMock: 2026-08-05T09:47:51.929871672Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-64
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.954718922Z:34
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.954718922Z
+ resTimestampMock: 2026-08-05T09:47:51.954918714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-65
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.955141339Z:35
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YWNjZXNzb3JpZXM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45NTQxNzMrMDA=
+ - !!binary YWx1bWluaXVtLCBhZGp1c3RhYmxl
+ - !!binary TGFwdG9wIFN0YW5k
+ - !!binary AAIAAAAAAAIAIiUc
+ - !!binary AAAAUA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 6
+ - accessories
+ - 2026-08-05T09:47:51.954173Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.955141339Z
+ resTimestampMock: 2026-08-05T09:47:51.955490881Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-66
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.956543881Z:36
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.956543881Z
+ resTimestampMock: 2026-08-05T09:47:51.957036714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-67
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:51.983776297Z:37
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.983776297Z
+ resTimestampMock: 2026-08-05T09:47:51.983953589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-68
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:51.984144964Z:38
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1MS45ODMxMTgrMDA=
+ - !!binary b3Zlci1lYXIsIEJUIDUuMw==
+ - !!binary Tm9pc2UtQ2FuY2VsbGluZyBIZWFkcGhvbmVz
+ - !!binary AAIAAAAAAAIAxyas
+ - !!binary AAAAPA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 7
+ - audio
+ - 2026-08-05T09:47:51.983118Z
+ - over-ear, BT 5.3
+ - Noise-Cancelling Headphones
+ - int: "19999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 60
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.984144964Z
+ resTimestampMock: 2026-08-05T09:47:51.984652089Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-69
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:51.986374172Z:39
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:51.986374172Z
+ resTimestampMock: 2026-08-05T09:47:51.986955381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-70
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.010536297Z:40
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.010536297Z
+ resTimestampMock: 2026-08-05T09:47:52.010699547Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-71
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.010881381Z:41
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wMDk5ODQrMDA=
+ - !!binary YXV0by1mb2N1cw==
+ - !!binary MTA4MHAgV2ViY2Ft
+ - !!binary AAEAAAAAAAIAOw==
+ - !!binary AAAALQ==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 8
+ - peripherals
+ - 2026-08-05T09:47:52.009984Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.010881381Z
+ resTimestampMock: 2026-08-05T09:47:52.011236797Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-72
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.012713256Z:42
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.012713256Z
+ resTimestampMock: 2026-08-05T09:47:52.013349797Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-73
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.036972131Z:43
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.036972131Z
+ resTimestampMock: 2026-08-05T09:47:52.037153256Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-74
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.037338381Z:44
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary c3RvcmFnZQ==
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wMzY0OSswMA==
+ - !!binary VVNCIDMuMiBHZW4y
+ - !!binary RXh0ZXJuYWwgU1NEIDFUQg==
+ - !!binary AAIAAAAAAAIAbSas
+ - !!binary AAAARg==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 9
+ - storage
+ - 2026-08-05T09:47:52.03649Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.037338381Z
+ resTimestampMock: 2026-08-05T09:47:52.037771422Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-75
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.038676297Z:45
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.038676297Z
+ resTimestampMock: 2026-08-05T09:47:52.039111381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-76
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.071624256Z:46
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.071624256Z
+ resTimestampMock: 2026-08-05T09:47:52.071948631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-77
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.073007214Z:47
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YWNjZXNzb3JpZXM=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wNzA4ODYrMDA=
+ - !!binary OTAweDQwMG1t
+ - !!binary RGVzayBNYXQgWEw=
+ - !!binary AAIAAAAAAAIAEyas
+ - !!binary AAAAyA==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 10
+ - accessories
+ - 2026-08-05T09:47:52.070886Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.073007214Z
+ resTimestampMock: 2026-08-05T09:47:52.073631089Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-78
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.074974964Z:48
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.074974964Z
+ resTimestampMock: 2026-08-05T09:47:52.075522881Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-79
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.099390297Z:49
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.099390297Z
+ resTimestampMock: 2026-08-05T09:47:52.099634006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-80
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.099786506Z:50
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4wOTg4OTIrMDA=
+ - !!binary Y2FyZGlvaWQsIHBsdWctYW5kLXBsYXk=
+ - !!binary VVNCIE1pY3JvcGhvbmU=
+ - !!binary AAEAAAAAAAIAWQ==
+ - !!binary AAAAIw==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 11
+ - audio
+ - 2026-08-05T09:47:52.098892Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.099786506Z
+ resTimestampMock: 2026-08-05T09:47:52.100031006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-81
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.101206172Z:51
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.101206172Z
+ resTimestampMock: 2026-08-05T09:47:52.101822422Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-82
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.124860964Z:52
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.124860964Z
+ resTimestampMock: 2026-08-05T09:47:52.125029506Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-83
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6
+ sqlNormalized: "insert into products (category,created_at,description,name,price,stock_quantity) values ($1,$2,$3,$4,$5,$6)\nRETURNING *"
+ paramOids:
+ - 1043
+ - 0
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ invocationId: sha256:3228dd720ec6861d81492ae96062eb07f7dca1d0a2c02b42095ee389b77990d6:0:2026-08-05T09:47:52.125194089Z:53
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary Y29tcHV0ZXJz
+ - !!binary MjAyNi0wOC0wNSAwOTo0Nzo1Mi4xMjQzOTUrMDA=
+ - !!binary MTZHQiBSQU0sIDUxMkdCIFNTRA==
+ - !!binary MTQtaW5jaCBMYXB0b3A=
+ - !!binary AAEAAAAAAAIESw==
+ - !!binary AAAADw==
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 12
+ - computers
+ - 2026-08-05T09:47:52.124395Z
+ - 16GB RAM, 512GB SSD
+ - 14-inch Laptop
+ - int: "109900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 15
+ commandComplete: INSERT 0 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.125194089Z
+ resTimestampMock: 2026-08-05T09:47:52.125414131Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-84
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.126122381Z:54
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.126122381Z
+ resTimestampMock: 2026-08-05T09:47:52.126669589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-85
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.159523631Z:55
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.159523631Z
+ resTimestampMock: 2026-08-05T09:47:52.159831297Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-86
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0
+ invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:52.159595547Z:56
+ precedingTxState: in_tx
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 1
+ - peripherals
+ - 2026-08-05T09:47:51.765227Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ - - 2
+ - peripherals
+ - 2026-08-05T09:47:51.846144Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 3
+ - peripherals
+ - 2026-08-05T09:47:51.874485Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ - - 4
+ - monitors
+ - 2026-08-05T09:47:51.89902Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ - - 5
+ - monitors
+ - 2026-08-05T09:47:51.926871Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ - - 6
+ - accessories
+ - 2026-08-05T09:47:51.954173Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 7
+ - audio
+ - 2026-08-05T09:47:51.983118Z
+ - over-ear, BT 5.3
+ - Noise-Cancelling Headphones
+ - int: "19999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 60
+ - - 8
+ - peripherals
+ - 2026-08-05T09:47:52.009984Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ - - 9
+ - storage
+ - 2026-08-05T09:47:52.03649Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ - - 10
+ - accessories
+ - 2026-08-05T09:47:52.070886Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ - - 11
+ - audio
+ - 2026-08-05T09:47:52.098892Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 12
+ - computers
+ - 2026-08-05T09:47:52.124395Z
+ - 16GB RAM, 512GB SSD
+ - 14-inch Laptop
+ - int: "109900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 15
+ commandComplete: SELECT 12
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.159595547Z
+ resTimestampMock: 2026-08-05T09:47:52.160122464Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-87
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.168045006Z:57
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.168045006Z
+ resTimestampMock: 2026-08-05T09:47:52.168381381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-88
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.195834422Z:58
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.195834422Z
+ resTimestampMock: 2026-08-05T09:47:52.196092214Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-89
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.195893464Z:59
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAE=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 1
+ - peripherals
+ - 2026-08-05T09:47:51.765227Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.195893464Z
+ resTimestampMock: 2026-08-05T09:47:52.196562089Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-90
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.198370797Z:60
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.198370797Z
+ resTimestampMock: 2026-08-05T09:47:52.198645381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-91
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.221113714Z:61
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.221113714Z
+ resTimestampMock: 2026-08-05T09:47:52.221480922Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-92
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.221113714Z:62
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAI=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 2
+ - peripherals
+ - 2026-08-05T09:47:51.846144Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.221113714Z
+ resTimestampMock: 2026-08-05T09:47:52.221878464Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-93
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.223755339Z:63
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.223755339Z
+ resTimestampMock: 2026-08-05T09:47:52.223997714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-94
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.243478422Z:64
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.243478422Z
+ resTimestampMock: 2026-08-05T09:47:52.243762881Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-95
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.243478422Z:65
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAM=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 3
+ - peripherals
+ - 2026-08-05T09:47:51.874485Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.243478422Z
+ resTimestampMock: 2026-08-05T09:47:52.244070422Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-96
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.245532089Z:66
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.245532089Z
+ resTimestampMock: 2026-08-05T09:47:52.245880297Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-97
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.270558881Z:67
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.270558881Z
+ resTimestampMock: 2026-08-05T09:47:52.270953047Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-98
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.270684797Z:68
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAQ=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 4
+ - monitors
+ - 2026-08-05T09:47:51.89902Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.270684797Z
+ resTimestampMock: 2026-08-05T09:47:52.271191256Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-99
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.272488214Z:69
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.272488214Z
+ resTimestampMock: 2026-08-05T09:47:52.272787422Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-100
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.292355464Z:70
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.292355464Z
+ resTimestampMock: 2026-08-05T09:47:52.292603964Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-101
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.292355464Z:71
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAU=
+ bindFormats:
+ - 1
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 5
+ - monitors
+ - 2026-08-05T09:47:51.926871Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.292355464Z
+ resTimestampMock: 2026-08-05T09:47:52.292859006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-102
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.293906839Z:72
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.293906839Z
+ resTimestampMock: 2026-08-05T09:47:52.294176172Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-103
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.312949714Z:73
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.312949714Z
+ resTimestampMock: 2026-08-05T09:47:52.313142631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-104
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.312949714Z:74
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAY=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 6
+ - format: 0
+ bytes:
+ - 97
+ - 99
+ - 99
+ - 101
+ - 115
+ - 115
+ - 111
+ - 114
+ - 105
+ - 101
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 0
+ - 174
+ - 253
+ - format: 0
+ bytes:
+ - 97
+ - 108
+ - 117
+ - 109
+ - 105
+ - 110
+ - 105
+ - 117
+ - 109
+ - 44
+ - 32
+ - 97
+ - 100
+ - 106
+ - 117
+ - 115
+ - 116
+ - 97
+ - 98
+ - 108
+ - 101
+ - format: 0
+ bytes:
+ - 76
+ - 97
+ - 112
+ - 116
+ - 111
+ - 112
+ - 32
+ - 83
+ - 116
+ - 97
+ - 110
+ - 100
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 34
+ - 37
+ - 28
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 80
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.312949714Z
+ resTimestampMock: 2026-08-05T09:47:52.313411464Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-105
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.315344298Z:75
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.315344298Z
+ resTimestampMock: 2026-08-05T09:47:52.315613714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-106
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.334785673Z:76
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.334785673Z
+ resTimestampMock: 2026-08-05T09:47:52.334995589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-107
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.334785673Z:77
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAc=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 7
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 100
+ - 105
+ - 111
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 32
+ - 14
+ - format: 0
+ bytes:
+ - 111
+ - 118
+ - 101
+ - 114
+ - 45
+ - 101
+ - 97
+ - 114
+ - 44
+ - 32
+ - 66
+ - 84
+ - 32
+ - 53
+ - 46
+ - 51
+ - format: 0
+ bytes:
+ - 78
+ - 111
+ - 105
+ - 115
+ - 101
+ - 45
+ - 67
+ - 97
+ - 110
+ - 99
+ - 101
+ - 108
+ - 108
+ - 105
+ - 110
+ - 103
+ - 32
+ - 72
+ - 101
+ - 97
+ - 100
+ - 112
+ - 104
+ - 111
+ - 110
+ - 101
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 199
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 60
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.334785673Z
+ resTimestampMock: 2026-08-05T09:47:52.335133048Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-108
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.336072756Z:78
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.336072756Z
+ resTimestampMock: 2026-08-05T09:47:52.336480714Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-109
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.356610923Z:79
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.356610923Z
+ resTimestampMock: 2026-08-05T09:47:52.356857839Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-110
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.356676256Z:80
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAg=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 8
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 137
+ - 0
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 116
+ - 111
+ - 45
+ - 102
+ - 111
+ - 99
+ - 117
+ - 115
+ - format: 0
+ bytes:
+ - 49
+ - 48
+ - 56
+ - 48
+ - 112
+ - 32
+ - 87
+ - 101
+ - 98
+ - 99
+ - 97
+ - 109
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 59
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 45
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.356676256Z
+ resTimestampMock: 2026-08-05T09:47:52.357077923Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-111
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.358663506Z:81
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.358663506Z
+ resTimestampMock: 2026-08-05T09:47:52.358935214Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-112
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.380234173Z:82
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.380234173Z
+ resTimestampMock: 2026-08-05T09:47:52.380468089Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-113
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.380234173Z:83
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAk=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 9
+ - format: 0
+ bytes:
+ - 115
+ - 116
+ - 111
+ - 114
+ - 97
+ - 103
+ - 101
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 240
+ - 138
+ - format: 0
+ bytes:
+ - 85
+ - 83
+ - 66
+ - 32
+ - 51
+ - 46
+ - 50
+ - 32
+ - 71
+ - 101
+ - 110
+ - 50
+ - format: 0
+ bytes:
+ - 69
+ - 120
+ - 116
+ - 101
+ - 114
+ - 110
+ - 97
+ - 108
+ - 32
+ - 83
+ - 83
+ - 68
+ - 32
+ - 49
+ - 84
+ - 66
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 109
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 70
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.380234173Z
+ resTimestampMock: 2026-08-05T09:47:52.380658298Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-114
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.382541006Z:84
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.382541006Z
+ resTimestampMock: 2026-08-05T09:47:52.382889839Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-115
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.402408131Z:85
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.402408131Z
+ resTimestampMock: 2026-08-05T09:47:52.402641589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-116
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.402408131Z:86
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAo=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 10
+ - format: 0
+ bytes:
+ - 97
+ - 99
+ - 99
+ - 101
+ - 115
+ - 115
+ - 111
+ - 114
+ - 105
+ - 101
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 2
+ - 118
+ - 230
+ - format: 0
+ bytes:
+ - 57
+ - 48
+ - 48
+ - 120
+ - 52
+ - 48
+ - 48
+ - 109
+ - 109
+ - format: 0
+ bytes:
+ - 68
+ - 101
+ - 115
+ - 107
+ - 32
+ - 77
+ - 97
+ - 116
+ - 32
+ - 88
+ - 76
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 19
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 200
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.402408131Z
+ resTimestampMock: 2026-08-05T09:47:52.402836214Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-117
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.403602673Z:87
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.403602673Z
+ resTimestampMock: 2026-08-05T09:47:52.403778798Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-118
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.420297798Z:88
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.420297798Z
+ resTimestampMock: 2026-08-05T09:47:52.420576214Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-119
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.420297798Z:89
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAs=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 11
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 100
+ - 105
+ - 111
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 2
+ - 228
+ - 76
+ - format: 0
+ bytes:
+ - 99
+ - 97
+ - 114
+ - 100
+ - 105
+ - 111
+ - 105
+ - 100
+ - 44
+ - 32
+ - 112
+ - 108
+ - 117
+ - 103
+ - 45
+ - 97
+ - 110
+ - 100
+ - 45
+ - 112
+ - 108
+ - 97
+ - 121
+ - format: 0
+ bytes:
+ - 85
+ - 83
+ - 66
+ - 32
+ - 77
+ - 105
+ - 99
+ - 114
+ - 111
+ - 112
+ - 104
+ - 111
+ - 110
+ - 101
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 89
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 35
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.420297798Z
+ resTimestampMock: 2026-08-05T09:47:52.420634006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-120
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.421350964Z:90
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.421350964Z
+ resTimestampMock: 2026-08-05T09:47:52.421532298Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-121
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:52.440228339Z:91
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.440228339Z
+ resTimestampMock: 2026-08-05T09:47:52.440481589Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-122
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:52.440293881Z:92
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAw=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 12
+ - format: 0
+ bytes:
+ - 99
+ - 111
+ - 109
+ - 112
+ - 117
+ - 116
+ - 101
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 3
+ - 71
+ - 235
+ - format: 0
+ bytes:
+ - 49
+ - 54
+ - 71
+ - 66
+ - 32
+ - 82
+ - 65
+ - 77
+ - 44
+ - 32
+ - 53
+ - 49
+ - 50
+ - 71
+ - 66
+ - 32
+ - 83
+ - 83
+ - 68
+ - format: 0
+ bytes:
+ - 49
+ - 52
+ - 45
+ - 105
+ - 110
+ - 99
+ - 104
+ - 32
+ - 76
+ - 97
+ - 112
+ - 116
+ - 111
+ - 112
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 4
+ - 75
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 15
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.440293881Z
+ resTimestampMock: 2026-08-05T09:47:52.440614006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-123
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:52.441577548Z:93
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:52.441577548Z
+ resTimestampMock: 2026-08-05T09:47:52.441740881Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-124
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.285848048Z:94
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.285848048Z
+ resTimestampMock: 2026-08-05T09:47:53.286273506Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-125
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.285848048Z:95
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ bindFormats:
+ - 0
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 1
+ - peripherals
+ - 2026-08-05T09:47:51.765227Z
+ - 65% hot-swappable
+ - Mechanical Keyboard
+ - int: "12999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 40
+ - - 2
+ - peripherals
+ - 2026-08-05T09:47:51.846144Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 3
+ - peripherals
+ - 2026-08-05T09:47:51.874485Z
+ - ergonomic, 2.4GHz
+ - Wireless Mouse
+ - int: "2499"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 150
+ - - 8
+ - peripherals
+ - 2026-08-05T09:47:52.009984Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ commandComplete: SELECT 4
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.285848048Z
+ resTimestampMock: 2026-08-05T09:47:53.287752631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-126
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.292936715Z:96
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.292936715Z
+ resTimestampMock: 2026-08-05T09:47:53.293351798Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-127
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.327865715Z:97
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.327865715Z
+ resTimestampMock: 2026-08-05T09:47:53.328346548Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-128
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.327987173Z:98
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ bindFormats:
+ - 0
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 4
+ - monitors
+ - 2026-08-05T09:47:51.89902Z
+ - IPS, 60Hz
+ - 27-inch 4K Monitor
+ - int: "32900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 25
+ - - 5
+ - monitors
+ - 2026-08-05T09:47:51.926871Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.327987173Z
+ resTimestampMock: 2026-08-05T09:47:53.328826465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-129
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.331302006Z:99
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.331302006Z
+ resTimestampMock: 2026-08-05T09:47:53.331622881Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-130
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.361986715Z:100
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.361986715Z
+ resTimestampMock: 2026-08-05T09:47:53.362320173Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-131
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.361986715Z:101
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YWNjZXNzb3JpZXM=
+ bindFormats:
+ - 0
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 6
+ - accessories
+ - 2026-08-05T09:47:51.954173Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 10
+ - accessories
+ - 2026-08-05T09:47:52.070886Z
+ - 900x400mm
+ - Desk Mat XL
+ - int: "1999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 200
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.361986715Z
+ resTimestampMock: 2026-08-05T09:47:53.362649548Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-132
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.364096673Z:102
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.364096673Z
+ resTimestampMock: 2026-08-05T09:47:53.364345631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-133
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.396563131Z:103
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.396563131Z
+ resTimestampMock: 2026-08-05T09:47:53.396907215Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-134
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.396563131Z:104
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ bindFormats:
+ - 0
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 7
+ - audio
+ - 2026-08-05T09:47:51.983118Z
+ - over-ear, BT 5.3
+ - Noise-Cancelling Headphones
+ - int: "19999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 60
+ - - 11
+ - audio
+ - 2026-08-05T09:47:52.098892Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ commandComplete: SELECT 2
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.396563131Z
+ resTimestampMock: 2026-08-05T09:47:53.397424215Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-135
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.401017548Z:105
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.401017548Z
+ resTimestampMock: 2026-08-05T09:47:53.401327298Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-136
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.441049256Z:106
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.441049256Z
+ resTimestampMock: 2026-08-05T09:47:53.441517631Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-137
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.441169673Z:107
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary c3RvcmFnZQ==
+ bindFormats:
+ - 0
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 9
+ - storage
+ - 2026-08-05T09:47:52.03649Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.441169673Z
+ resTimestampMock: 2026-08-05T09:47:53.442449465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-138
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.444660381Z:108
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.444660381Z
+ resTimestampMock: 2026-08-05T09:47:53.444951715Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-139
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.475390298Z:109
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.475390298Z
+ resTimestampMock: 2026-08-05T09:47:53.475745256Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-140
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.475508256Z:110
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary Y29tcHV0ZXJz
+ bindFormats:
+ - 0
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 12
+ - format: 0
+ bytes:
+ - 99
+ - 111
+ - 109
+ - 112
+ - 117
+ - 116
+ - 101
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 3
+ - 71
+ - 235
+ - format: 0
+ bytes:
+ - 49
+ - 54
+ - 71
+ - 66
+ - 32
+ - 82
+ - 65
+ - 77
+ - 44
+ - 32
+ - 53
+ - 49
+ - 50
+ - 71
+ - 66
+ - 32
+ - 83
+ - 83
+ - 68
+ - format: 0
+ bytes:
+ - 49
+ - 52
+ - 45
+ - 105
+ - 110
+ - 99
+ - 104
+ - 32
+ - 76
+ - 97
+ - 112
+ - 116
+ - 111
+ - 112
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 4
+ - 75
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 15
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.475508256Z
+ resTimestampMock: 2026-08-05T09:47:53.476110715Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-141
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.478050381Z:111
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.478050381Z
+ resTimestampMock: 2026-08-05T09:47:53.478459048Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-142
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.505831715Z:112
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.505831715Z
+ resTimestampMock: 2026-08-05T09:47:53.50614084Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-143
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.505831715Z:113
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary Z2FtaW5n
+ bindFormats:
+ - 0
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.505831715Z
+ resTimestampMock: 2026-08-05T09:47:53.506370798Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-144
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.507533215Z:114
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.507533215Z
+ resTimestampMock: 2026-08-05T09:47:53.507875548Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-145
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.53589159Z:115
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.53589159Z
+ resTimestampMock: 2026-08-05T09:47:53.53631684Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-146
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.53589159Z:116
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAE=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 253
+ - 204
+ - 235
+ - format: 0
+ bytes:
+ - 54
+ - 53
+ - 37
+ - 32
+ - 104
+ - 111
+ - 116
+ - 45
+ - 115
+ - 119
+ - 97
+ - 112
+ - 112
+ - 97
+ - 98
+ - 108
+ - 101
+ - format: 0
+ bytes:
+ - 77
+ - 101
+ - 99
+ - 104
+ - 97
+ - 110
+ - 105
+ - 99
+ - 97
+ - 108
+ - 32
+ - 75
+ - 101
+ - 121
+ - 98
+ - 111
+ - 97
+ - 114
+ - 100
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 129
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 40
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.53589159Z
+ resTimestampMock: 2026-08-05T09:47:53.536561381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-147
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee
+ sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6
+ paramOids:
+ - 1043
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ - 20
+ invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.55347709Z:117
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ - !!binary NzUlIGxheW91dCwgUkdC
+ - !!binary TWVjaGFuaWNhbCBLZXlib2FyZCB2Mg==
+ - !!binary AAIAAAAAAAIAlSas
+ - !!binary AAAAIw==
+ - !!binary AAAAAAAAAAE=
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.55347709Z
+ resTimestampMock: 2026-08-05T09:47:53.554577756Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-148
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.557576881Z:118
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.557576881Z
+ resTimestampMock: 2026-08-05T09:47:53.558660381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-149
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.583517923Z:119
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.583517923Z
+ resTimestampMock: 2026-08-05T09:47:53.583812006Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-150
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.583612631Z:120
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAE=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 253
+ - 204
+ - 235
+ - format: 0
+ bytes:
+ - 55
+ - 53
+ - 37
+ - 32
+ - 108
+ - 97
+ - 121
+ - 111
+ - 117
+ - 116
+ - 44
+ - 32
+ - 82
+ - 71
+ - 66
+ - format: 0
+ bytes:
+ - 77
+ - 101
+ - 99
+ - 104
+ - 97
+ - 110
+ - 105
+ - 99
+ - 97
+ - 108
+ - 32
+ - 75
+ - 101
+ - 121
+ - 98
+ - 111
+ - 97
+ - 114
+ - 100
+ - 32
+ - 118
+ - 50
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 149
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 35
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.583612631Z
+ resTimestampMock: 2026-08-05T09:47:53.584026673Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-151
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.585078506Z:121
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.585078506Z
+ resTimestampMock: 2026-08-05T09:47:53.585348381Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-152
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.610412923Z:122
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.610412923Z
+ resTimestampMock: 2026-08-05T09:47:53.61072809Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-153
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.610412923Z:123
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAQ=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 4
+ - format: 0
+ bytes:
+ - 109
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 255
+ - 215
+ - 140
+ - format: 0
+ bytes:
+ - 73
+ - 80
+ - 83
+ - 44
+ - 32
+ - 54
+ - 48
+ - 72
+ - 122
+ - format: 0
+ bytes:
+ - 50
+ - 55
+ - 45
+ - 105
+ - 110
+ - 99
+ - 104
+ - 32
+ - 52
+ - 75
+ - 32
+ - 77
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 1
+ - 73
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 25
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.610412923Z
+ resTimestampMock: 2026-08-05T09:47:53.610776215Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-154
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee
+ sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6
+ paramOids:
+ - 1043
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ - 20
+ invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.61306284Z:124
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary bW9uaXRvcnM=
+ - !!binary SVBTLCA2MEh6LCBIRFI0MDA=
+ - !!binary MjctaW5jaCA0SyBNb25pdG9y
+ - !!binary AAEAAAAAAAIBKw==
+ - !!binary AAAAHg==
+ - !!binary AAAAAAAAAAQ=
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.61306284Z
+ resTimestampMock: 2026-08-05T09:47:53.613768423Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-155
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.614161673Z:125
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.614161673Z
+ resTimestampMock: 2026-08-05T09:47:53.614913465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-156
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.635515006Z:126
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.635515006Z
+ resTimestampMock: 2026-08-05T09:47:53.635742256Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-157
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.635581965Z:127
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAQ=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 4
+ - format: 0
+ bytes:
+ - 109
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 255
+ - 215
+ - 140
+ - format: 0
+ bytes:
+ - 73
+ - 80
+ - 83
+ - 44
+ - 32
+ - 54
+ - 48
+ - 72
+ - 122
+ - 44
+ - 32
+ - 72
+ - 68
+ - 82
+ - 52
+ - 48
+ - 48
+ - format: 0
+ bytes:
+ - 50
+ - 55
+ - 45
+ - 105
+ - 110
+ - 99
+ - 104
+ - 32
+ - 52
+ - 75
+ - 32
+ - 77
+ - 111
+ - 110
+ - 105
+ - 116
+ - 111
+ - 114
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 1
+ - 43
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 30
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.635581965Z
+ resTimestampMock: 2026-08-05T09:47:53.635869173Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-158
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.636747631Z:128
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.636747631Z
+ resTimestampMock: 2026-08-05T09:47:53.636959506Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-159
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.658563673Z:129
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.658563673Z
+ resTimestampMock: 2026-08-05T09:47:53.65875184Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-160
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.658563673Z:130
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAc=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 7
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 100
+ - 105
+ - 111
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 32
+ - 14
+ - format: 0
+ bytes:
+ - 111
+ - 118
+ - 101
+ - 114
+ - 45
+ - 101
+ - 97
+ - 114
+ - 44
+ - 32
+ - 66
+ - 84
+ - 32
+ - 53
+ - 46
+ - 51
+ - format: 0
+ bytes:
+ - 78
+ - 111
+ - 105
+ - 115
+ - 101
+ - 45
+ - 67
+ - 97
+ - 110
+ - 99
+ - 101
+ - 108
+ - 108
+ - 105
+ - 110
+ - 103
+ - 32
+ - 72
+ - 101
+ - 97
+ - 100
+ - 112
+ - 104
+ - 111
+ - 110
+ - 101
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 199
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 60
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.658563673Z
+ resTimestampMock: 2026-08-05T09:47:53.658882173Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-161
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee
+ sqlNormalized: update products set category=$1,description=$2,name=$3,price=$4,stock_quantity=$5 where id=$6
+ paramOids:
+ - 1043
+ - 1043
+ - 1043
+ - 1700
+ - 23
+ - 20
+ invocationId: sha256:0eccdc80934ad13a21d207d4a3c49c1fea511bb6982d08d267330d85326e9bee:0:2026-08-05T09:47:53.660541715Z:131
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary YXVkaW8=
+ - !!binary b3Zlci1lYXIsIEJUIDUuMywgQU5DKw==
+ - !!binary Tm9pc2UtQ2FuY2VsbGluZyBIZWFkcGhvbmVzIFBybw==
+ - !!binary AAIAAAAAAAIA+Sas
+ - !!binary AAAAMg==
+ - !!binary AAAAAAAAAAc=
+ bindFormats:
+ - 0
+ - 0
+ - 0
+ - 1
+ - 1
+ - 1
+ response:
+ commandComplete: UPDATE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.660541715Z
+ resTimestampMock: 2026-08-05T09:47:53.66103009Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-162
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.661380965Z:132
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.661380965Z
+ resTimestampMock: 2026-08-05T09:47:53.662077923Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-163
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.67993934Z:133
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.67993934Z
+ resTimestampMock: 2026-08-05T09:47:53.680127465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-164
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.67993934Z:134
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAc=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 7
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 100
+ - 105
+ - 111
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 32
+ - 14
+ - format: 0
+ bytes:
+ - 111
+ - 118
+ - 101
+ - 114
+ - 45
+ - 101
+ - 97
+ - 114
+ - 44
+ - 32
+ - 66
+ - 84
+ - 32
+ - 53
+ - 46
+ - 51
+ - 44
+ - 32
+ - 65
+ - 78
+ - 67
+ - 43
+ - format: 0
+ bytes:
+ - 78
+ - 111
+ - 105
+ - 115
+ - 101
+ - 45
+ - 67
+ - 97
+ - 110
+ - 99
+ - 101
+ - 108
+ - 108
+ - 105
+ - 110
+ - 103
+ - 32
+ - 72
+ - 101
+ - 97
+ - 100
+ - 112
+ - 104
+ - 111
+ - 110
+ - 101
+ - 115
+ - 32
+ - 80
+ - 114
+ - 111
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 249
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 50
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.67993934Z
+ resTimestampMock: 2026-08-05T09:47:53.68026109Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-165
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.681175006Z:135
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.681175006Z
+ resTimestampMock: 2026-08-05T09:47:53.68139184Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-166
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.700873548Z:136
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.700873548Z
+ resTimestampMock: 2026-08-05T09:47:53.70106509Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-167
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.700873548Z:137
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAM=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 3
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 255
+ - 119
+ - 181
+ - format: 0
+ bytes:
+ - 101
+ - 114
+ - 103
+ - 111
+ - 110
+ - 111
+ - 109
+ - 105
+ - 99
+ - 44
+ - 32
+ - 50
+ - 46
+ - 52
+ - 71
+ - 72
+ - 122
+ - format: 0
+ bytes:
+ - 87
+ - 105
+ - 114
+ - 101
+ - 108
+ - 101
+ - 115
+ - 115
+ - 32
+ - 77
+ - 111
+ - 117
+ - 115
+ - 101
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 24
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 150
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.700873548Z
+ resTimestampMock: 2026-08-05T09:47:53.701242506Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-168
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412
+ sqlNormalized: delete from products where id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412:0:2026-08-05T09:47:53.70749034Z:138
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAM=
+ bindFormats:
+ - 1
+ response:
+ commandComplete: DELETE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.70749034Z
+ resTimestampMock: 2026-08-05T09:47:53.70785459Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-169
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.709303381Z:139
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.709303381Z
+ resTimestampMock: 2026-08-05T09:47:53.709823215Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-170
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.728023965Z:140
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.728023965Z
+ resTimestampMock: 2026-08-05T09:47:53.72825309Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-171
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.728023965Z:141
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAo=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 10
+ - format: 0
+ bytes:
+ - 97
+ - 99
+ - 99
+ - 101
+ - 115
+ - 115
+ - 111
+ - 114
+ - 105
+ - 101
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 2
+ - 118
+ - 230
+ - format: 0
+ bytes:
+ - 57
+ - 48
+ - 48
+ - 120
+ - 52
+ - 48
+ - 48
+ - 109
+ - 109
+ - format: 0
+ bytes:
+ - 68
+ - 101
+ - 115
+ - 107
+ - 32
+ - 77
+ - 97
+ - 116
+ - 32
+ - 88
+ - 76
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 19
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 200
+ commandComplete: SELECT 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.728023965Z
+ resTimestampMock: 2026-08-05T09:47:53.72844359Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-172
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412
+ sqlNormalized: delete from products where id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:88e6e38d3ea613d24eefe3a4ec18d71c65703e72674f5dfab01b814f5cf4c412:0:2026-08-05T09:47:53.729839382Z:142
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAo=
+ bindFormats:
+ - 1
+ response:
+ commandComplete: DELETE 1
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.729839382Z
+ resTimestampMock: 2026-08-05T09:47:53.73016509Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-173
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.730443715Z:143
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.730443715Z
+ resTimestampMock: 2026-08-05T09:47:53.730947298Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-174
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.749170382Z:144
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.749170382Z
+ resTimestampMock: 2026-08-05T09:47:53.749365173Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-175
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0
+ invocationId: sha256:574c475fa0e5639547b122e66a88c8e8460ed61d05a2323d340480733f967381:0:2026-08-05T09:47:53.749170382Z:145
+ precedingTxState: in_tx
+ response:
+ rowDescription:
+ - name: id
+ tableOid: 16386
+ colAttrNum: 1
+ typeOid: 20
+ typeSize: 8
+ typeMod: -1
+ - name: category
+ tableOid: 16386
+ colAttrNum: 2
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: created_at
+ tableOid: 16386
+ colAttrNum: 3
+ typeOid: 1184
+ typeSize: 8
+ typeMod: 6
+ - name: description
+ tableOid: 16386
+ colAttrNum: 4
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 1004
+ - name: name
+ tableOid: 16386
+ colAttrNum: 5
+ typeOid: 1043
+ typeSize: -1
+ typeMod: 259
+ - name: price
+ tableOid: 16386
+ colAttrNum: 6
+ typeOid: 1700
+ typeSize: -1
+ typeMod: 786438
+ - name: stock_quantity
+ tableOid: 16386
+ colAttrNum: 7
+ typeOid: 23
+ typeSize: 4
+ typeMod: -1
+ rows:
+ - - 2
+ - peripherals
+ - 2026-08-05T09:47:51.846144Z
+ - 7-in-1 aluminium
+ - USB-C Hub
+ - int: "3950"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 100
+ - - 5
+ - monitors
+ - 2026-08-05T09:47:51.926871Z
+ - curved, 144Hz
+ - 34-inch Ultrawide Monitor
+ - int: "59900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 12
+ - - 6
+ - accessories
+ - 2026-08-05T09:47:51.954173Z
+ - aluminium, adjustable
+ - Laptop Stand
+ - int: "3495"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 80
+ - - 8
+ - peripherals
+ - 2026-08-05T09:47:52.009984Z
+ - auto-focus
+ - 1080p Webcam
+ - int: "5900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 45
+ - - 9
+ - storage
+ - 2026-08-05T09:47:52.03649Z
+ - USB 3.2 Gen2
+ - External SSD 1TB
+ - int: "10999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 70
+ - - 11
+ - audio
+ - 2026-08-05T09:47:52.098892Z
+ - cardioid, plug-and-play
+ - USB Microphone
+ - int: "8900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 12
+ - computers
+ - 2026-08-05T09:47:52.124395Z
+ - 16GB RAM, 512GB SSD
+ - 14-inch Laptop
+ - int: "109900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 15
+ - - 1
+ - peripherals
+ - 2026-08-05T09:47:51.765227Z
+ - 75% layout, RGB
+ - Mechanical Keyboard v2
+ - int: "14999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 35
+ - - 4
+ - monitors
+ - 2026-08-05T09:47:51.89902Z
+ - IPS, 60Hz, HDR400
+ - 27-inch 4K Monitor
+ - int: "29900"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 30
+ - - 7
+ - audio
+ - 2026-08-05T09:47:51.983118Z
+ - over-ear, BT 5.3, ANC+
+ - Noise-Cancelling Headphones Pro
+ - int: "24999"
+ exp: -2
+ nan: false
+ infinitymodifier: 0
+ valid: true
+ - 50
+ commandComplete: SELECT 10
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.749170382Z
+ resTimestampMock: 2026-08-05T09:47:53.749575757Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-176
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.752051423Z:146
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.752051423Z
+ resTimestampMock: 2026-08-05T09:47:53.75227384Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-177
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.772014673Z:147
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.772014673Z
+ resTimestampMock: 2026-08-05T09:47:53.772234465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-178
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where upper(p1_0.category)=upper($1)
+ paramOids:
+ - 1043
+ invocationId: sha256:ffd2206b47744f42612bc0bc96ebae34b96c7db0095671d26e94df11a02dfa30:0:2026-08-05T09:47:53.772068173Z:148
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary cGVyaXBoZXJhbHM=
+ bindFormats:
+ - 0
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ rows:
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 255
+ - 9
+ - 0
+ - format: 0
+ bytes:
+ - 55
+ - 45
+ - 105
+ - 110
+ - 45
+ - 49
+ - 32
+ - 97
+ - 108
+ - 117
+ - 109
+ - 105
+ - 110
+ - 105
+ - 117
+ - 109
+ - format: 0
+ bytes:
+ - 85
+ - 83
+ - 66
+ - 45
+ - 67
+ - 32
+ - 72
+ - 117
+ - 98
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 39
+ - 19
+ - 136
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 100
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 8
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 111
+ - 1
+ - 137
+ - 0
+ - format: 0
+ bytes:
+ - 97
+ - 117
+ - 116
+ - 111
+ - 45
+ - 102
+ - 111
+ - 99
+ - 117
+ - 115
+ - format: 0
+ bytes:
+ - 49
+ - 48
+ - 56
+ - 48
+ - 112
+ - 32
+ - 87
+ - 101
+ - 98
+ - 99
+ - 97
+ - 109
+ - format: 1
+ bytes:
+ - 0
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 59
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 45
+ - - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 1
+ - format: 0
+ bytes:
+ - 112
+ - 101
+ - 114
+ - 105
+ - 112
+ - 104
+ - 101
+ - 114
+ - 97
+ - 108
+ - 115
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 251
+ - 72
+ - 110
+ - 253
+ - 204
+ - 235
+ - format: 0
+ bytes:
+ - 55
+ - 53
+ - 37
+ - 32
+ - 108
+ - 97
+ - 121
+ - 111
+ - 117
+ - 116
+ - 44
+ - 32
+ - 82
+ - 71
+ - 66
+ - format: 0
+ bytes:
+ - 77
+ - 101
+ - 99
+ - 104
+ - 97
+ - 110
+ - 105
+ - 99
+ - 97
+ - 108
+ - 32
+ - 75
+ - 101
+ - 121
+ - 98
+ - 111
+ - 97
+ - 114
+ - 100
+ - 32
+ - 118
+ - 50
+ - format: 1
+ bytes:
+ - 0
+ - 2
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 2
+ - 0
+ - 149
+ - 38
+ - 172
+ - format: 1
+ bytes:
+ - 0
+ - 0
+ - 0
+ - 35
+ commandComplete: SELECT 3
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.772068173Z
+ resTimestampMock: 2026-08-05T09:47:53.772437048Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-179
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439
+ sqlNormalized: COMMIT
+ invocationId: sha256:cd3c36208f26fbef67b62d1116148a76e1eee8b227747c2256be5d249d69a439:0:2026-08-05T09:47:53.773943215Z:149
+ precedingTxState: in_tx
+ response:
+ commandComplete: COMMIT
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.773943215Z
+ resTimestampMock: 2026-08-05T09:47:53.774121382Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-180
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.792323548Z:150
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.792323548Z
+ resTimestampMock: 2026-08-05T09:47:53.79256559Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-181
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.792379507Z:151
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAABhp8=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.792379507Z
+ resTimestampMock: 2026-08-05T09:47:53.792659465Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-182
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338
+ sqlNormalized: ROLLBACK
+ invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.794472507Z:152
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.794472507Z
+ resTimestampMock: 2026-08-05T09:47:53.794685382Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-183
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN READ ONLY
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.829325465Z:153
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.829325465Z
+ resTimestampMock: 2026-08-05T09:47:53.829579132Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-184
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.829325465Z:154
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAAAAAM=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.829325465Z
+ resTimestampMock: 2026-08-05T09:47:53.829910548Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-185
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338
+ sqlNormalized: ROLLBACK
+ invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.830953048Z:155
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.830953048Z
+ resTimestampMock: 2026-08-05T09:47:53.831279882Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-186
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.859003257Z:156
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.859003257Z
+ resTimestampMock: 2026-08-05T09:47:53.859167173Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-187
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.859003257Z:157
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAABhp8=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.859003257Z
+ resTimestampMock: 2026-08-05T09:47:53.859485257Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-188
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338
+ sqlNormalized: ROLLBACK
+ invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.860457257Z:158
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.860457257Z
+ resTimestampMock: 2026-08-05T09:47:53.860685298Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-189
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8
+ sqlNormalized: BEGIN
+ invocationId: sha256:83b556f1ffe78c1283dfa0a60cb7a032029891447cb14af2bb30a4e13b08e2e8:0:2026-08-05T09:47:53.887539632Z:159
+ precedingTxState: idle
+ response:
+ commandComplete: BEGIN
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.887539632Z
+ resTimestampMock: 2026-08-05T09:47:53.887927007Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-190
+spec:
+ metadata:
+ class: APP
+ connID: "0"
+ lifetime: perTest
+ type: mocks
+ postgresV3:
+ type: query
+ query:
+ class: APP
+ lifetime: perTest
+ sqlAstHash: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65
+ sqlNormalized: select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.name,p1_0.price,p1_0.stock_quantity from products p1_0 where p1_0.id=$1
+ paramOids:
+ - 20
+ invocationId: sha256:f6906d60b464001858cdc4f2a8d3fa2e43aec2e414078b3f3a5b8dffa4257f65:0:2026-08-05T09:47:53.887699757Z:160
+ precedingTxState: in_tx
+ bindValues:
+ - !!binary AAAAAAABWzg=
+ bindFormats:
+ - 1
+ resultFormats:
+ - 1
+ - 0
+ - 1
+ - 0
+ - 0
+ - 1
+ - 1
+ response:
+ commandComplete: SELECT 0
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.887699757Z
+ resTimestampMock: 2026-08-05T09:47:53.888236507Z
+connectionId: "0"
+---
+version: api.keploy.io/v1beta1
+kind: PostgresV3
+name: mock-191
+spec:
+ metadata:
+ class: TX
+ connID: "0"
+ lifetime: session
+ type: config
+ postgresV3:
+ type: query
+ query:
+ class: TX
+ lifetime: session
+ sqlAstHash: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338
+ sqlNormalized: ROLLBACK
+ invocationId: sha256:cf2f9b5d15a69e62c120b1649c7b9916d06f96e4dbf83b4e6fee004915384338:0:2026-08-05T09:47:53.890536173Z:161
+ precedingTxState: in_tx
+ response:
+ commandComplete: ROLLBACK
+ sideEffects: {}
+ reqTimestampMock: 2026-08-05T09:47:53.890536173Z
+ resTimestampMock: 2026-08-05T09:47:53.891141007Z
+connectionId: "0"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml
new file mode 100644
index 00000000..de290f46
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-1.yaml
@@ -0,0 +1,38 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: delete-api-products-by-id-1
+spec:
+ metadata: {}
+ req:
+ method: DELETE
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/3
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.698135506Z
+ resp:
+ status_code: 204
+ header:
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: ""
+ status_message: No Content
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.710849131Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request DELETE \
+ --url http://localhost:8080/api/products/3 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml
new file mode 100644
index 00000000..54e8968c
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-2.yaml
@@ -0,0 +1,38 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: delete-api-products-by-id-2
+spec:
+ metadata: {}
+ req:
+ method: DELETE
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/10
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.725833715Z
+ resp:
+ status_code: 204
+ header:
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: ""
+ status_message: No Content
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.731937465Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request DELETE \
+ --url http://localhost:8080/api/products/10 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml
new file mode 100644
index 00000000..7b5f6a2e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/delete-api-products-by-id-3.yaml
@@ -0,0 +1,39 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: delete-api-products-by-id-3
+spec:
+ metadata: {}
+ req:
+ method: DELETE
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/88888
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.88451309Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"status":404,"error":"Not Found","message":"Product 88888 not found"}'
+ status_message: Not Found
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.895310048Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request DELETE \
+ --url http://localhost:8080/api/products/88888 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml
new file mode 100644
index 00000000..5765e6f6
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-1.yaml
@@ -0,0 +1,40 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-1
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:50.537493172Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:50 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:50.877519505Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923270
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml
new file mode 100644
index 00000000..fa3d9708
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-10.yaml
@@ -0,0 +1,42 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-10
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=gaming
+ url_params:
+ category: gaming
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.501016506Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.509852131Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=gaming \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml
new file mode 100644
index 00000000..5f0d80bc
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-11.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-11
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.746177298Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "1688"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"},{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.753919215Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml
new file mode 100644
index 00000000..015f0e3a
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-12.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-12
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=peripherals
+ url_params:
+ category: peripherals
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.768925215Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "495"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.775661173Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=peripherals \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml
new file mode 100644
index 00000000..3e5537b6
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-2.yaml
@@ -0,0 +1,40 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-2
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:51.521124089Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "2"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ body: '[]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.53549213Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml
new file mode 100644
index 00000000..cff23b1b
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-3.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-3
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.154889047Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "1995"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"},{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"},{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"},{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"},{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.171077881Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml
new file mode 100644
index 00000000..48e2f1fb
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-4.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-4
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=peripherals
+ url_params:
+ category: peripherals
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.457445881Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "662"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"},{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"},{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"},{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.296947215Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=peripherals \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml
new file mode 100644
index 00000000..dcfe7dbd
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-5.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-5
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=monitors
+ url_params:
+ category: monitors
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.322897381Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "334"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"},{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.335293298Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=monitors \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml
new file mode 100644
index 00000000..d1dc8838
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-6.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-6
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=accessories
+ url_params:
+ category: accessories
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.35743609Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "328"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"},{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.366932381Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=accessories \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml
new file mode 100644
index 00000000..e271b86c
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-7.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-7
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=audio
+ url_params:
+ category: audio
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.391164006Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "343"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"},{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.404990215Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=audio \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml
new file mode 100644
index 00000000..85e01f6c
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-8.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-8
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=storage
+ url_params:
+ category: storage
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.434172256Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "162"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.447671381Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=storage \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml
new file mode 100644
index 00000000..0d650fa8
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-9.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-9
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products?category=computers
+ url_params:
+ category: computers
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.470989423Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "171"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '[{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}]'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.481041423Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products?category=computers \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml
new file mode 100644
index 00000000..a9ee54c8
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-1.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-1
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.185836922Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "172"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.201007881Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/1 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml
new file mode 100644
index 00000000..51f29e5f
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-10.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-10
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/10
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.400153756Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "157"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.405178131Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/10 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml
new file mode 100644
index 00000000..80817bd8
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-11.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-11
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/11
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.418193756Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "167"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.422992298Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/11 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml
new file mode 100644
index 00000000..d63773d2
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-12.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-12
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/12
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.437791714Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "169"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.443282839Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/12 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml
new file mode 100644
index 00000000..330955c0
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-13.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-13
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.580774631Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.58791659Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/1 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml
new file mode 100644
index 00000000..0544c1f5
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-14.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-14
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/4
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.63297659Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.639081715Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/4 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml
new file mode 100644
index 00000000..7bf8133d
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-15.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-15
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/7
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.677868673Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "183"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.682846923Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/7 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml
new file mode 100644
index 00000000..5c534d5e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-16.yaml
@@ -0,0 +1,39 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-16
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/99999
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.790304173Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"status":404,"error":"Not Found","message":"Product 99999 not found"}'
+ status_message: Not Found
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.802322215Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/99999 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml
new file mode 100644
index 00000000..c6be1d6e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-17.yaml
@@ -0,0 +1,39 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-17
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/3
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:53.826713048Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"status":404,"error":"Not Found","message":"Product 3 not found"}'
+ status_message: Not Found
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.833839715Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/3 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml
new file mode 100644
index 00000000..05e18290
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-2.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-2
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/2
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.218142839Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "161"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.225559256Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/2 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml
new file mode 100644
index 00000000..c36261eb
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-3.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-3
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/3
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.241119839Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "167"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874485Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.248298756Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/3 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml
new file mode 100644
index 00000000..af40bfac
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-4.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-4
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/4
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.266444297Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "160"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.274799339Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/4 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml
new file mode 100644
index 00000000..9841bdbb
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-5.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-5
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/5
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.290074339Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "171"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.295790714Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/5 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml
new file mode 100644
index 00000000..e4636794
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-6.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-6
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/6
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.310882131Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.317869589Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/6 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml
new file mode 100644
index 00000000..b3ec0943
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-7.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-7
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/7
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.332076006Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.339043381Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/7 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml
new file mode 100644
index 00000000..9e6a96ae
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-8.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-8
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/8
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.354425131Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "157"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009984Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.361916798Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/8 \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml
new file mode 100644
index 00000000..a89be607
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/get-api-products-by-id-9.yaml
@@ -0,0 +1,41 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: get-api-products-by-id-9
+spec:
+ metadata: {}
+ req:
+ method: GET
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/9
+ header:
+ Accept: '*/*'
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: ""
+ timestamp: 2026-08-05T09:47:52.377573214Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "160"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ body: '{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.384753506Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |
+ curl --request GET \
+ --url http://localhost:8080/api/products/9 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Host: localhost:8080' \
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml
new file mode 100644
index 00000000..10f4bff7
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-1.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-1
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "123"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals"}'
+ timestamp: 2026-08-05T09:47:51.548846714Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/1
+ body: '{"id":1,"name":"Mechanical Keyboard","description":"65% hot-swappable","price":129.99,"stockQuantity":40,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765226797Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.819094672Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"Mechanical Keyboard\",\"description\":\"65% hot-swappable\",\"price\":129.99,\"stockQuantity\":40,\"category\":\"peripherals\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml
new file mode 100644
index 00000000..1ca9a162
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-10.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-10
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "107"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories"}'
+ timestamp: 2026-08-05T09:47:52.067824464Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ Location: http://localhost:8080/api/products/10
+ body: '{"id":10,"name":"Desk Mat XL","description":"900x400mm","price":19.99,"stockQuantity":200,"category":"accessories","createdAt":"2026-08-05T09:47:52.070886256Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.077852464Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"Desk Mat XL\",\"description\":\"900x400mm\",\"price\":19.99,\"stockQuantity\":200,\"category\":\"accessories\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml
new file mode 100644
index 00000000..4131d9b3
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-11.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-11
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "117"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio"}'
+ timestamp: 2026-08-05T09:47:52.096539714Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ Location: http://localhost:8080/api/products/11
+ body: '{"id":11,"name":"USB Microphone","description":"cardioid, plug-and-play","price":89.00,"stockQuantity":35,"category":"audio","createdAt":"2026-08-05T09:47:52.098892339Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.103579839Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"USB Microphone\",\"description\":\"cardioid, plug-and-play\",\"price\":89.00,\"stockQuantity\":35,\"category\":\"audio\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml
new file mode 100644
index 00000000..5002192d
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-12.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-12
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "119"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers"}'
+ timestamp: 2026-08-05T09:47:52.122036589Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ Location: http://localhost:8080/api/products/12
+ body: '{"id":12,"name":"14-inch Laptop","description":"16GB RAM, 512GB SSD","price":1099.00,"stockQuantity":15,"category":"computers","createdAt":"2026-08-05T09:47:52.124395089Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.128115672Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"14-inch Laptop\",\"description\":\"16GB RAM, 512GB SSD\",\"price\":1099.00,\"stockQuantity\":15,\"category\":\"computers\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml
new file mode 100644
index 00000000..5ca642e9
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-13.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-13
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "58"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"","price":10.00,"stockQuantity":5,"category":"x"}'
+ timestamp: 2026-08-05T09:47:53.929578215Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.986531548Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"\",\"price\":10.00,\"stockQuantity\":5,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml
new file mode 100644
index 00000000..bde4f6dd
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-14.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-14
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "48"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"price":10.00,"stockQuantity":5,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.027501798Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.046613798Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"price\":10.00,\"stockQuantity\":5,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml
new file mode 100644
index 00000000..b7185408
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-15.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-15
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "61"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Bad","price":-5.00,"stockQuantity":5,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.093201173Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price must be greater than 0"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.098682173Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"Bad\",\"price\":-5.00,\"stockQuantity\":5,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml
new file mode 100644
index 00000000..a7b3701e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-16.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-16
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "57"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Bad","price":0,"stockQuantity":5,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.150084507Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price must be greater than 0"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.180859632Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"Bad\",\"price\":0,\"stockQuantity\":5,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml
new file mode 100644
index 00000000..ceb61766
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-17.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-17
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "47"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Bad","stockQuantity":5,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.444558924Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"price":"price is required"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.516463799Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"Bad\",\"stockQuantity\":5,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml
new file mode 100644
index 00000000..10b6d6ac
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-18.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-18
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "43"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Bad","price":10.00,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.597930799Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"stockQuantity":"stockQuantity is required"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.686418507Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --data "{\"name\":\"Bad\",\"price\":10.00,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml
new file mode 100644
index 00000000..f577b160
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-19.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-19
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "62"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Bad","price":10.00,"stockQuantity":-3,"category":"x"}'
+ timestamp: 2026-08-05T09:47:54.859669382Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:54 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"stockQuantity":"stockQuantity cannot be negative"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:54.873243215Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923274
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"Bad\",\"price\":10.00,\"stockQuantity\":-3,\"category\":\"x\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml
new file mode 100644
index 00000000..149ed65e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-2.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-2
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "112"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals"}'
+ timestamp: 2026-08-05T09:47:51.843145381Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/2
+ body: '{"id":2,"name":"USB-C Hub","description":"7-in-1 aluminium","price":39.50,"stockQuantity":100,"category":"peripherals","createdAt":"2026-08-05T09:47:51.846144422Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.851579964Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"USB-C Hub\",\"description\":\"7-in-1 aluminium\",\"price\":39.50,\"stockQuantity\":100,\"category\":\"peripherals\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml
new file mode 100644
index 00000000..8c2d1e58
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-20.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-20
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "22"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"","price":-1}'
+ timestamp: 2026-08-05T09:47:55.167565091Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:55 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required","price":"price must be greater than 0","stockQuantity":"stockQuantity is required"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:55.185959341Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923275
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"\",\"price\":-1}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml
new file mode 100644
index 00000000..f872dc7a
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-3.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-3
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "118"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals"}'
+ timestamp: 2026-08-05T09:47:51.872038464Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/3
+ body: '{"id":3,"name":"Wireless Mouse","description":"ergonomic, 2.4GHz","price":24.99,"stockQuantity":150,"category":"peripherals","createdAt":"2026-08-05T09:47:51.874484756Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.878511047Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"Wireless Mouse\",\"description\":\"ergonomic, 2.4GHz\",\"price\":24.99,\"stockQuantity\":150,\"category\":\"peripherals\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml
new file mode 100644
index 00000000..7fd14875
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-4.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-4
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "111"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors"}'
+ timestamp: 2026-08-05T09:47:51.896657797Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/4
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz","price":329.00,"stockQuantity":25,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020172Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.905879172Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"27-inch 4K Monitor\",\"description\":\"IPS, 60Hz\",\"price\":329.00,\"stockQuantity\":25,\"category\":\"monitors\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml
new file mode 100644
index 00000000..1c2e05bf
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-5.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-5
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "122"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors"}'
+ timestamp: 2026-08-05T09:47:51.924524964Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/5
+ body: '{"id":5,"name":"34-inch Ultrawide Monitor","description":"curved, 144Hz","price":599.00,"stockQuantity":12,"category":"monitors","createdAt":"2026-08-05T09:47:51.926871339Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.931618881Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"34-inch Ultrawide Monitor\",\"description\":\"curved, 144Hz\",\"price\":599.00,\"stockQuantity\":12,\"category\":\"monitors\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml
new file mode 100644
index 00000000..4665bfa8
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-6.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-6
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "119"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories"}'
+ timestamp: 2026-08-05T09:47:51.951356922Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/6
+ body: '{"id":6,"name":"Laptop Stand","description":"aluminium, adjustable","price":34.95,"stockQuantity":80,"category":"accessories","createdAt":"2026-08-05T09:47:51.954173172Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.958699839Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"Laptop Stand\",\"description\":\"aluminium, adjustable\",\"price\":34.95,\"stockQuantity\":80,\"category\":\"accessories\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml
new file mode 100644
index 00000000..b25e48a9
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-7.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-7
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "124"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio"}'
+ timestamp: 2026-08-05T09:47:51.980774881Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:51 GMT
+ Location: http://localhost:8080/api/products/7
+ body: '{"id":7,"name":"Noise-Cancelling Headphones","description":"over-ear, BT 5.3","price":199.99,"stockQuantity":60,"category":"audio","createdAt":"2026-08-05T09:47:51.983117881Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:51.988569464Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923271
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --data "{\"name\":\"Noise-Cancelling Headphones\",\"description\":\"over-ear, BT 5.3\",\"price\":199.99,\"stockQuantity\":60,\"category\":\"audio\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml
new file mode 100644
index 00000000..a868896e
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-8.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-8
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "108"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals"}'
+ timestamp: 2026-08-05T09:47:52.007203756Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ Location: http://localhost:8080/api/products/8
+ body: '{"id":8,"name":"1080p Webcam","description":"auto-focus","price":59.00,"stockQuantity":45,"category":"peripherals","createdAt":"2026-08-05T09:47:52.009983547Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.015268089Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"1080p Webcam\",\"description\":\"auto-focus\",\"price\":59.00,\"stockQuantity\":45,\"category\":\"peripherals\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml
new file mode 100644
index 00000000..6e88e97d
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/post-api-products-9.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: post-api-products-9
+spec:
+ metadata: {}
+ req:
+ method: POST
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products
+ header:
+ Accept: '*/*'
+ Content-Length: "111"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage"}'
+ timestamp: 2026-08-05T09:47:52.033960297Z
+ resp:
+ status_code: 201
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:52 GMT
+ Location: http://localhost:8080/api/products/9
+ body: '{"id":9,"name":"External SSD 1TB","description":"USB 3.2 Gen2","price":109.99,"stockQuantity":70,"category":"storage","createdAt":"2026-08-05T09:47:52.036490172Z"}'
+ status_message: Created
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:52.041113256Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923272
+ app_port: 8080
+curl: |-
+ curl --request POST \
+ --url http://localhost:8080/api/products \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"External SSD 1TB\",\"description\":\"USB 3.2 Gen2\",\"price\":109.99,\"stockQuantity\":70,\"category\":\"storage\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml
new file mode 100644
index 00000000..af00c885
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-1.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: put-api-products-by-id-1
+spec:
+ metadata: {}
+ req:
+ method: PUT
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1
+ header:
+ Accept: '*/*'
+ Content-Length: "124"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals"}'
+ timestamp: 2026-08-05T09:47:53.529595548Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "173"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":1,"name":"Mechanical Keyboard v2","description":"75% layout, RGB","price":149.99,"stockQuantity":35,"category":"peripherals","createdAt":"2026-08-05T09:47:51.765227Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.561551006Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/1 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"Mechanical Keyboard v2\",\"description\":\"75% layout, RGB\",\"price\":149.99,\"stockQuantity\":35,\"category\":\"peripherals\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml
new file mode 100644
index 00000000..cdfb4124
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-2.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: put-api-products-by-id-2
+spec:
+ metadata: {}
+ req:
+ method: PUT
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/4
+ header:
+ Accept: '*/*'
+ Content-Length: "119"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors"}'
+ timestamp: 2026-08-05T09:47:53.60642484Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "168"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":4,"name":"27-inch 4K Monitor","description":"IPS, 60Hz, HDR400","price":299.00,"stockQuantity":30,"category":"monitors","createdAt":"2026-08-05T09:47:51.899020Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.616671256Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/4 \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --data "{\"name\":\"27-inch 4K Monitor\",\"description\":\"IPS, 60Hz, HDR400\",\"price\":299.00,\"stockQuantity\":30,\"category\":\"monitors\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml
new file mode 100644
index 00000000..05cda562
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-3.yaml
@@ -0,0 +1,45 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: put-api-products-by-id-3
+spec:
+ metadata: {}
+ req:
+ method: PUT
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/7
+ header:
+ Accept: '*/*'
+ Content-Length: "134"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio"}'
+ timestamp: 2026-08-05T09:47:53.65540834Z
+ resp:
+ status_code: 200
+ header:
+ Content-Length: "183"
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"id":7,"name":"Noise-Cancelling Headphones Pro","description":"over-ear, BT 5.3, ANC+","price":249.99,"stockQuantity":50,"category":"audio","createdAt":"2026-08-05T09:47:51.983118Z"}'
+ status_message: OK
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.663728173Z
+ objects: []
+ assertions:
+ noise:
+ body.createdAt: []
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/7 \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"Noise-Cancelling Headphones Pro\",\"description\":\"over-ear, BT 5.3, ANC+\",\"price\":249.99,\"stockQuantity\":50,\"category\":\"audio\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml
new file mode 100644
index 00000000..770fd7b3
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-4.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: put-api-products-by-id-4
+spec:
+ metadata: {}
+ req:
+ method: PUT
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/99999
+ header:
+ Accept: '*/*'
+ Content-Length: "65"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"ghost","price":1.00,"stockQuantity":1,"category":"none"}'
+ timestamp: 2026-08-05T09:47:53.855836007Z
+ resp:
+ status_code: 404
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:53 GMT
+ body: '{"status":404,"error":"Not Found","message":"Product 99999 not found"}'
+ status_message: Not Found
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:53.862450007Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923273
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/99999 \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --data "{\"name\":\"ghost\",\"price\":1.00,\"stockQuantity\":1,\"category\":\"none\"}"
diff --git a/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml
new file mode 100644
index 00000000..11ae4dc2
--- /dev/null
+++ b/spring-boot-product-catalog/keploy/products-crud/tests/put-api-products-by-id-5.yaml
@@ -0,0 +1,43 @@
+# Generated by Keploy (3.5.95)
+version: api.keploy.io/v1beta1
+kind: Http
+name: put-api-products-by-id-5
+spec:
+ metadata: {}
+ req:
+ method: PUT
+ proto_major: 1
+ proto_minor: 1
+ url: http://localhost:8080/api/products/1
+ header:
+ Accept: '*/*'
+ Content-Length: "41"
+ Content-Type: application/json
+ Host: localhost:8080
+ User-Agent: curl/8.7.1
+ body: '{"name":"","price":-9,"stockQuantity":-1}'
+ timestamp: 2026-08-05T09:47:55.249904674Z
+ resp:
+ status_code: 400
+ header:
+ Content-Type: application/json
+ Date: Wed, 05 Aug 2026 09:47:55 GMT
+ body: '{"status":400,"error":"Bad Request","message":"Validation failed","fieldErrors":{"name":"name is required","price":"price must be greater than 0","stockQuantity":"stockQuantity cannot be negative"}}'
+ status_message: Bad Request
+ proto_major: 0
+ proto_minor: 0
+ timestamp: 2026-08-05T09:47:55.262067632Z
+ objects: []
+ assertions:
+ noise:
+ header.Date: []
+ created: 1785923275
+ app_port: 8080
+curl: |-
+ curl --request PUT \
+ --url http://localhost:8080/api/products/1 \
+ --header 'Content-Type: application/json' \
+ --header 'Host: localhost:8080' \
+ --header 'User-Agent: curl/8.7.1' \
+ --header 'Accept: */*' \
+ --data "{\"name\":\"\",\"price\":-9,\"stockQuantity\":-1}"
diff --git a/spring-boot-product-catalog/mvnw b/spring-boot-product-catalog/mvnw
new file mode 100755
index 00000000..bd8896bf
--- /dev/null
+++ b/spring-boot-product-catalog/mvnw
@@ -0,0 +1,295 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.3.4
+#
+# Optional ENV vars
+# -----------------
+# JAVA_HOME - location of a JDK home dir, required when download maven via java source
+# MVNW_REPOURL - repo url base for downloading maven distribution
+# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
+# ----------------------------------------------------------------------------
+
+set -euf
+[ "${MVNW_VERBOSE-}" != debug ] || set -x
+
+# OS specific support.
+native_path() { printf %s\\n "$1"; }
+case "$(uname)" in
+CYGWIN* | MINGW*)
+ [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
+ native_path() { cygpath --path --windows "$1"; }
+ ;;
+esac
+
+# set JAVACMD and JAVACCMD
+set_java_home() {
+ # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
+ if [ -n "${JAVA_HOME-}" ]; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ]; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACCMD="$JAVA_HOME/jre/sh/javac"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ JAVACCMD="$JAVA_HOME/bin/javac"
+
+ if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
+ echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
+ echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
+ return 1
+ fi
+ fi
+ else
+ JAVACMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v java
+ )" || :
+ JAVACCMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v javac
+ )" || :
+
+ if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
+ echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
+ return 1
+ fi
+ fi
+}
+
+# hash string like Java String::hashCode
+hash_string() {
+ str="${1:-}" h=0
+ while [ -n "$str" ]; do
+ char="${str%"${str#?}"}"
+ h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
+ str="${str#?}"
+ done
+ printf %x\\n $h
+}
+
+verbose() { :; }
+[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
+
+die() {
+ printf %s\\n "$1" >&2
+ exit 1
+}
+
+trim() {
+ # MWRAPPER-139:
+ # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+ # Needed for removing poorly interpreted newline sequences when running in more
+ # exotic environments such as mingw bash on Windows.
+ printf "%s" "${1}" | tr -d '[:space:]'
+}
+
+scriptDir="$(dirname "$0")"
+scriptName="$(basename "$0")"
+
+# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
+while IFS="=" read -r key value; do
+ case "${key-}" in
+ distributionUrl) distributionUrl=$(trim "${value-}") ;;
+ distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
+ esac
+done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties"
+[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+
+case "${distributionUrl##*/}" in
+maven-mvnd-*bin.*)
+ MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
+ case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
+ *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
+ :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
+ :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
+ :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
+ *)
+ echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
+ distributionPlatform=linux-amd64
+ ;;
+ esac
+ distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
+ ;;
+maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
+*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
+esac
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
+distributionUrlName="${distributionUrl##*/}"
+distributionUrlNameMain="${distributionUrlName%.*}"
+distributionUrlNameMain="${distributionUrlNameMain%-bin}"
+MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
+MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
+
+exec_maven() {
+ unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
+ exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
+}
+
+if [ -d "$MAVEN_HOME" ]; then
+ verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ exec_maven "$@"
+fi
+
+case "${distributionUrl-}" in
+*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
+*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
+esac
+
+# prepare tmp dir
+if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
+ clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
+ trap clean HUP INT TERM EXIT
+else
+ die "cannot create temp dir"
+fi
+
+mkdir -p -- "${MAVEN_HOME%/*}"
+
+# Download and Install Apache Maven
+verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+verbose "Downloading from: $distributionUrl"
+verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+# select .zip or .tar.gz
+if ! command -v unzip >/dev/null; then
+ distributionUrl="${distributionUrl%.zip}.tar.gz"
+ distributionUrlName="${distributionUrl##*/}"
+fi
+
+# verbose opt
+__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
+[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
+
+# normalize http auth
+case "${MVNW_PASSWORD:+has-password}" in
+'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+esac
+
+if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
+ verbose "Found wget ... using wget"
+ wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
+elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
+ verbose "Found curl ... using curl"
+ curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
+elif set_java_home; then
+ verbose "Falling back to use Java to download"
+ javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
+ targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
+ cat >"$javaSource" <<-END
+ public class Downloader extends java.net.Authenticator
+ {
+ protected java.net.PasswordAuthentication getPasswordAuthentication()
+ {
+ return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
+ }
+ public static void main( String[] args ) throws Exception
+ {
+ setDefault( new Downloader() );
+ java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
+ }
+ }
+ END
+ # For Cygwin/MinGW, switch paths to Windows format before running javac and java
+ verbose " - Compiling Downloader.java ..."
+ "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
+ verbose " - Running Downloader.java ..."
+ "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
+fi
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+if [ -n "${distributionSha256Sum-}" ]; then
+ distributionSha256Result=false
+ if [ "$MVN_CMD" = mvnd.sh ]; then
+ echo "Checksum validation is not supported for maven-mvnd." >&2
+ echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ elif command -v sha256sum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ elif command -v shasum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ else
+ echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
+ echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ fi
+ if [ $distributionSha256Result = false ]; then
+ echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
+ echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
+ exit 1
+ fi
+fi
+
+# unzip and move
+if command -v unzip >/dev/null; then
+ unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
+else
+ tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
+fi
+
+# Find the actual extracted directory name (handles snapshots where filename != directory name)
+actualDistributionDir=""
+
+# First try the expected directory name (for regular distributions)
+if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then
+ if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then
+ actualDistributionDir="$distributionUrlNameMain"
+ fi
+fi
+
+# If not found, search for any directory with the Maven executable (for snapshots)
+if [ -z "$actualDistributionDir" ]; then
+ # enable globbing to iterate over items
+ set +f
+ for dir in "$TMP_DOWNLOAD_DIR"/*; do
+ if [ -d "$dir" ]; then
+ if [ -f "$dir/bin/$MVN_CMD" ]; then
+ actualDistributionDir="$(basename "$dir")"
+ break
+ fi
+ fi
+ done
+ set -f
+fi
+
+if [ -z "$actualDistributionDir" ]; then
+ verbose "Contents of $TMP_DOWNLOAD_DIR:"
+ verbose "$(ls -la "$TMP_DOWNLOAD_DIR")"
+ die "Could not find Maven distribution directory in extracted archive"
+fi
+
+verbose "Found extracted Maven distribution directory: $actualDistributionDir"
+printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url"
+mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
+
+clean || :
+exec_maven "$@"
diff --git a/spring-boot-product-catalog/mvnw.cmd b/spring-boot-product-catalog/mvnw.cmd
new file mode 100644
index 00000000..92450f93
--- /dev/null
+++ b/spring-boot-product-catalog/mvnw.cmd
@@ -0,0 +1,189 @@
+<# : batch portion
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.3.4
+@REM
+@REM Optional ENV vars
+@REM MVNW_REPOURL - repo url base for downloading maven distribution
+@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
+@REM ----------------------------------------------------------------------------
+
+@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
+@SET __MVNW_CMD__=
+@SET __MVNW_ERROR__=
+@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
+@SET PSModulePath=
+@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
+ IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
+)
+@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
+@SET __MVNW_PSMODULEP_SAVE=
+@SET __MVNW_ARG0_NAME__=
+@SET MVNW_USERNAME=
+@SET MVNW_PASSWORD=
+@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*)
+@echo Cannot start maven from wrapper >&2 && exit /b 1
+@GOTO :EOF
+: end batch / begin powershell #>
+
+$ErrorActionPreference = "Stop"
+if ($env:MVNW_VERBOSE -eq "true") {
+ $VerbosePreference = "Continue"
+}
+
+# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
+$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
+if (!$distributionUrl) {
+ Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+}
+
+switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
+ "maven-mvnd-*" {
+ $USE_MVND = $true
+ $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
+ $MVN_CMD = "mvnd.cmd"
+ break
+ }
+ default {
+ $USE_MVND = $false
+ $MVN_CMD = $script -replace '^mvnw','mvn'
+ break
+ }
+}
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+if ($env:MVNW_REPOURL) {
+ $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" }
+ $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')"
+}
+$distributionUrlName = $distributionUrl -replace '^.*/',''
+$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
+
+$MAVEN_M2_PATH = "$HOME/.m2"
+if ($env:MAVEN_USER_HOME) {
+ $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME"
+}
+
+if (-not (Test-Path -Path $MAVEN_M2_PATH)) {
+ New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null
+}
+
+$MAVEN_WRAPPER_DISTS = $null
+if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) {
+ $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists"
+} else {
+ $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists"
+}
+
+$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain"
+$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
+$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
+
+if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
+ Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
+ exit $?
+}
+
+if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
+ Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
+}
+
+# prepare tmp dir
+$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
+$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
+$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
+trap {
+ if ($TMP_DOWNLOAD_DIR.Exists) {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+ }
+}
+
+New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
+
+# Download and Install Apache Maven
+Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+Write-Verbose "Downloading from: $distributionUrl"
+Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+$webclient = New-Object System.Net.WebClient
+if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
+ $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
+}
+[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
+if ($distributionSha256Sum) {
+ if ($USE_MVND) {
+ Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
+ }
+ Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
+ if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
+ Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
+ }
+}
+
+# unzip and move
+Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
+
+# Find the actual extracted directory name (handles snapshots where filename != directory name)
+$actualDistributionDir = ""
+
+# First try the expected directory name (for regular distributions)
+$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain"
+$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD"
+if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) {
+ $actualDistributionDir = $distributionUrlNameMain
+}
+
+# If not found, search for any directory with the Maven executable (for snapshots)
+if (!$actualDistributionDir) {
+ Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object {
+ $testPath = Join-Path $_.FullName "bin/$MVN_CMD"
+ if (Test-Path -Path $testPath -PathType Leaf) {
+ $actualDistributionDir = $_.Name
+ }
+ }
+}
+
+if (!$actualDistributionDir) {
+ Write-Error "Could not find Maven distribution directory in extracted archive"
+}
+
+Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir"
+Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null
+try {
+ Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
+} catch {
+ if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
+ Write-Error "fail to move MAVEN_HOME"
+ }
+} finally {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+}
+
+Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
diff --git a/spring-boot-product-catalog/pom.xml b/spring-boot-product-catalog/pom.xml
new file mode 100644
index 00000000..57560e1a
--- /dev/null
+++ b/spring-boot-product-catalog/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 4.1.0
+
+
+ io.keploy
+ product-catalog
+ 0.0.1-SNAPSHOT
+ product-catalog
+ Spring Boot + PostgreSQL product catalog REST API, used as a Keploy record-and-replay sample
+
+ 21
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-webmvc
+
+
+
+ org.postgresql
+ postgresql
+ runtime
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-validation-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/spring-boot-product-catalog/seed.sh b/spring-boot-product-catalog/seed.sh
new file mode 100755
index 00000000..bf786a2f
--- /dev/null
+++ b/spring-boot-product-catalog/seed.sh
@@ -0,0 +1,121 @@
+#!/usr/bin/env bash
+# Traffic generator for Keploy recording.
+#
+# Drives the Product Catalog API through a rich, realistic workload so the recorded
+# Keploy suite is broad: ~50 test cases covering the full CRUD lifecycle across several
+# categories, filtering, and a wide range of 400 (validation) and 404 (not-found) paths.
+# Ids returned by POST are chained into later GET/PUT/DELETE calls so the suite is coherent.
+set -uo pipefail
+
+BASE="${BASE:-http://localhost:8080}"
+
+# --- helpers -----------------------------------------------------------------
+id_of() { grep -o '"id":[0-9]*' | head -1 | cut -d: -f2; }
+
+CREATED=() # ids of products created, in order
+
+# create '' -> prints response, appends new id to CREATED
+create() {
+ local json="$1" body id
+ body=$(curl -fsS -X POST "$BASE/api/products" -H 'Content-Type: application/json' -d "$json")
+ echo " created: $body"
+ id=$(printf '%s' "$body" | id_of)
+ CREATED+=("$id")
+}
+
+# expect '