Skip to content

chore(tools/bigquery,mssql,mysql,postgres,spanner,tidb): Add query logging to execute-sql tools#1069

Merged
duwenxin99 merged 3 commits into
mainfrom
log-stmt
Aug 5, 2025
Merged

chore(tools/bigquery,mssql,mysql,postgres,spanner,tidb): Add query logging to execute-sql tools#1069
duwenxin99 merged 3 commits into
mainfrom
log-stmt

Merge branch 'main' into log-stmt

6b1250a
Select commit
Loading
Failed to load commit list.
Google Cloud Build / integration-test-pr (toolbox-testing-438616) succeeded Aug 5, 2025 in 5m 36s

Summary

Build Information

Trigger integration-test-pr
Build e3e87e1c-0a15-4329-93e4-20e2e5d235b2
Start 2025-08-04T19:52:39-07:00
Duration 4m42.138s
Status SUCCESS

Steps

Step Status Duration
install-dependencies SUCCESS 17.93s
compile-test-binary SUCCESS 2m0.681s
cloud-sql-pg SUCCESS 21.095s
alloydb-pg SUCCESS 22.686s
alloydb-ai-nl SUCCESS 10.387s
bigtable SUCCESS 24.246s
bigquery SUCCESS 54.16s
dataplex SUCCESS 2m13.336s
postgres SUCCESS 7.601s
spanner SUCCESS 2m0.421s
neo4j SUCCESS 5.75s
cloud-sql-mssql SUCCESS 6.995s
cloud-sql-mysql SUCCESS 6.594s
mysql SUCCESS 6.494s
mssql SUCCESS 6.208s
dgraph SUCCESS 4.615s
http SUCCESS 5.031s
sqlite SUCCESS 4.675s
couchbase SUCCESS 28.198s
redis SUCCESS 5.728s
valkey SUCCESS 5.214s
firestore SUCCESS 5.161s
looker SUCCESS 12.178s
duckdb SUCCESS 4.787s
alloydbwaitforoperation SUCCESS 4.908s
tidb SUCCESS 6.671s

Details


starting build "e3e87e1c-0a15-4329-93e4-20e2e5d235b2"

FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /workspace/.git/
From https://github.com/googleapis/genai-toolbox
 * branch            6b1250a08d812aa50fec76704b99095da0706519 -> FETCH_HEAD
HEAD is now at 6b1250a Merge branch 'main' into log-stmt
GitCommit:
6b1250a08d812aa50fec76704b99095da0706519
SETUPBUILD
BUILD
Starting Step #0 - "install-dependencies"
Step #0 - "install-dependencies": Pulling image: golang:1
Step #0 - "install-dependencies": 1: Pulling from library/golang
Step #0 - "install-dependencies": Digest: sha256:ef5b4be1f94b36c90385abd9b6b4f201723ae28e71acacb76d00687333c17282
Step #0 - "install-dependencies": Status: Downloaded newer image for golang:1
Step #0 - "install-dependencies": docker.io/library/golang:1
Step #0 - "install-dependencies": go: -d flag is deprecated. -d=true is a no-op
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydbconn v1.15.4
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgx/v5 v5.7.5
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/trace v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/redis/go-redis/v9 v9.11.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.244.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.2
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigquery v1.69.0
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.63
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/cloudsqlconn v1.17.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/firestore v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/looker-open-source/sdk-codegen/go v0.25.10
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/v2 v2.3.4
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/dataplex v1.26.0
Step #0 - "install-dependencies": go: downloading go.mongodb.org/mongo-driver v1.17.4
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.2
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigtable v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/validator/v10 v10.27.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.62.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading github.com/google/uuid v1.6.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go v0.121.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/metric v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.9.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk/metric v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk v1.37.0
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/monitoring v1.24.2
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/googleapis/gax-go/v2 v2.15.0
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading google.golang.org/grpc v1.74.2
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading google.golang.org/protobuf v1.36.6
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.34.0
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
Step #0 - "install-dependencies": go: downloading gopkg.in/ini.v1 v1.67.0
Step #0 - "install-dependencies": go: downloading github.com/apache/arrow-go/v18 v18.4.0
Step #0 - "install-dependencies": go: downloading github.com/go-viper/mapstructure/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/arrowmapping v0.0.10
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/mapping v0.0.11
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/compute/metadata v0.7.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/trace v1.11.6
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/errors v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78
Step #0 - "install-dependencies": go: downloading golang.org/x/crypto v0.40.0
Step #0 - "install-dependencies": go: downloading github.com/ajg/form v1.5.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/aws v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/ot v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/gabriel-vasile/mimetype v1.4.8
Step #0 - "install-dependencies": go: downloading github.com/go-playground/universal-translator v0.18.1
Step #0 - "install-dependencies": go: downloading github.com/leodido/go-urn v1.4.0
Step #0 - "install-dependencies": go: downloading golang.org/x/text v0.27.0
Step #0 - "install-dependencies": go: downloading github.com/cespare/xxhash/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
Step #0 - "install-dependencies": go: downloading github.com/thlib/go-timezone-local v0.0.7
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydb v1.18.0
Step #0 - "install-dependencies": go: downloading golang.org/x/net v0.42.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth v0.16.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/iam v1.5.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/longrunning v0.6.7
Step #0 - "install-dependencies": go: downloading golang.org/x/time v0.12.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcore/v10 v10.7.1
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcoreps v0.1.3
Step #0 - "install-dependencies": go: downloading github.com/couchbase/goprotostellar v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20240607131231-fb385523de28
Step #0 - "install-dependencies": go: downloading github.com/golang/snappy v1.0.0
Step #0 - "install-dependencies": go: downloading go.uber.org/zap v1.27.0
Step #0 - "install-dependencies": go: downloading github.com/inconshreveable/mousetrap v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/pflag v1.0.6
Step #0 - "install-dependencies": go: downloading github.com/jackc/puddle/v2 v2.2.2
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/sqlexp v0.1.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.3
Step #0 - "install-dependencies": go: downloading go.opencensus.io v0.24.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/detectors/gcp v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/apache/arrow/go/v15 v15.0.2
Step #0 - "install-dependencies": go: downloading golang.org/x/sync v0.16.0
Step #0 - "install-dependencies": go: downloading github.com/go-logr/logr v1.4.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/proto/otlp v1.7.0
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings v0.1.17
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
Step #0 - "install-dependencies": go: downloading github.com/modern-go/reflect2 v1.0.2
Step #0 - "install-dependencies": go: downloading go.uber.org/multierr v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/locales v0.14.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/gorilla/websocket v1.5.3
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgpassfile v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
Step #0 - "install-dependencies": go: downloading github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0
Step #0 - "install-dependencies": go: downloading golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
Step #0 - "install-dependencies": go: downloading golang.org/x/tools v0.34.0
Step #0 - "install-dependencies": go: downloading golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da
Step #0 - "install-dependencies": go: downloading github.com/go-logr/stdr v1.2.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/auto/sdk v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/cenkalti/backoff/v5 v5.0.2
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1
Step #0 - "install-dependencies": go: downloading github.com/google/s2a-go v0.1.9
Step #0 - "install-dependencies": go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.6
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/go-control-plane/envoy v1.32.4
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/scram v1.1.2
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/stringprep v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/klauspost/compress v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/montanaflynn/stats v0.7.1
Step #0 - "install-dependencies": go: downloading github.com/felixge/httpsnoop v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-json v0.10.5
Step #0 - "install-dependencies": go: downloading github.com/zeebo/xxh3 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/google/flatbuffers v25.2.10+incompatible
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4/v4 v4.1.22
Step #0 - "install-dependencies": go: downloading github.com/spiffe/go-spiffe/v2 v2.5.0
Step #0 - "install-dependencies": go: downloading github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/pbkdf2 v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/go-jose/go-jose/v4 v4.0.5
Step #0 - "install-dependencies": go: downloading github.com/zeebo/errs v1.4.0
Step #0 - "install-dependencies": go: downloading github.com/klauspost/cpuid/v2 v2.2.11
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/protoc-gen-validate v1.2.1
Step #0 - "install-dependencies": go: downloading github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
Step #0 - "install-dependencies": go: downloading golang.org/x/mod v0.25.0
Step #0 - "install-dependencies": go: downloading cel.dev/expr v0.24.0
Step #0 - "install-dependencies": go: downloading modernc.org/libc v1.66.3
Step #0 - "install-dependencies": go: downloading github.com/mattn/go-isatty v0.0.20
Step #0 - "install-dependencies": go: downloading github.com/ncruces/go-strftime v0.1.9
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.1
Step #0 - "install-dependencies": go: downloading github.com/dustin/go-humanize v1.0.1
Step #0 - "install-dependencies": go: downloading modernc.org/memory v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
Finished Step #0 - "install-dependencies"
Starting Step #1 - "compile-test-binary"
Step #1 - "compile-test-binary": Already have image (with digest): golang:1
Step #1 - "compile-test-binary": ?   	github.com/googleapis/genai-toolbox/tests	[no test files]
Finished Step #1 - "compile-test-binary"
Starting Step #5 - "bigtable"
Starting Step #18 - "couchbase"
Starting Step #12 - "cloud-sql-mysql"
Starting Step #19 - "redis"
Starting Step #11 - "cloud-sql-mssql"
Starting Step #14 - "mssql"
Starting Step #22 - "looker"
Starting Step #21 - "firestore"
Starting Step #6 - "bigquery"
Starting Step #10 - "neo4j"
Starting Step #17 - "sqlite"
Starting Step #8 - "postgres"
Starting Step #2 - "cloud-sql-pg"
Starting Step #24 - "alloydbwaitforoperation"
Starting Step #3 - "alloydb-pg"
Starting Step #20 - "valkey"
Starting Step #13 - "mysql"
Starting Step #9 - "spanner"
Starting Step #7 - "dataplex"
Starting Step #15 - "dgraph"
Starting Step #23 - "duckdb"
Starting Step #16 - "http"
Starting Step #25 - "tidb"
Starting Step #4 - "alloydb-ai-nl"
Step #19 - "redis": Already have image (with digest): golang:1
Step #9 - "spanner": Already have image (with digest): golang:1
Step #24 - "alloydbwaitforoperation": Already have image (with digest): golang:1
Step #21 - "firestore": Already have image (with digest): golang:1
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #13 - "mysql": Already have image (with digest): golang:1
Step #15 - "dgraph": Already have image (with digest): golang:1
Step #18 - "couchbase": Already have image (with digest): golang:1
Step #11 - "cloud-sql-mssql": Already have image (with digest): golang:1
Step #23 - "duckdb": Already have image (with digest): golang:1
Step #12 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #17 - "sqlite": Already have image (with digest): golang:1
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #20 - "valkey": Already have image (with digest): golang:1
Step #7 - "dataplex": Already have image (with digest): golang:1
Step #22 - "looker": Already have image (with digest): golang:1
Step #25 - "tidb": Already have image (with digest): golang:1
Step #10 - "neo4j": Already have image (with digest): golang:1
Step #8 - "postgres": Already have image (with digest): golang:1
Step #16 - "http": Already have image (with digest): golang:1
Step #14 - "mssql": Already have image (with digest): golang:1
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints
Step #23 - "duckdb": === RUN   TestDuckDb
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/successful_operation
Step #24 - "alloydbwaitforoperation": 2025-08-05T02:55:04.940516895Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/wait-for-op1/invoke" method: "POST" path: "/api/tool/wait-for-op1/invoke" remoteIP: "127.0.0.1:56128" proto: "HTTP/1.1" requestID: "21f9c1220718/4l4e5y2qAi-000001"} httpResponse: {status: 200 bytes: 96 elapsed: 2.868583} 
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/failed_operation
Step #24 - "alloydbwaitforoperation": 2025-08-05T02:55:04.943413002Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/wait-for-op2/invoke" method: "POST" path: "/api/tool/wait-for-op2/invoke" remoteIP: "127.0.0.1:56128" proto: "HTTP/1.1" requestID: "21f9c1220718/4l4e5y2qAi-000002"} httpResponse: {status: 400 bytes: 174 elapsed: 1.230933} 
Step #24 - "alloydbwaitforoperation": --- PASS: TestWaitToolEndpoints (0.04s)
Step #24 - "alloydbwaitforoperation":     --- PASS: TestWaitToolEndpoints/successful_operation (0.01s)
Step #24 - "alloydbwaitforoperation":     --- PASS: TestWaitToolEndpoints/failed_operation (0.00s)
Step #24 - "alloydbwaitforoperation": PASS
Step #24 - "alloydbwaitforoperation": coverage: 4.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/get_my-simple-tool
Step #15 - "dgraph": 2025-08-05T02:55:05.015956013Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-dql-tool/" method: "GET" path: "/api/tool/my-simple-dql-tool/" remoteIP: "127.0.0.1:56142" proto: "HTTP/1.1" requestID: "c0a8ec462abf/jcY8cVADnZ-000001"} httpResponse: {status: 200 bytes: 172 elapsed: 0.591446} 
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint
Step #23 - "duckdb": === RUN   TestDuckDb/get_my-simple-tool
Step #23 - "duckdb": 2025-08-05T02:55:05.036750426Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.842428} 
Step #15 - "dgraph": 2025-08-05T02:55:05.097046756Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-dql-tool/invoke" method: "POST" path: "/api/tool/my-simple-dql-tool/invoke" remoteIP: "127.0.0.1:56142" proto: "HTTP/1.1" requestID: "c0a8ec462abf/jcY8cVADnZ-000002"} httpResponse: {status: 200 bytes: 45 elapsed: 79.495988} 
Step #15 - "dgraph": --- PASS: TestDgraphToolEndpoints (0.85s)
Step #15 - "dgraph":     --- PASS: TestDgraphToolEndpoints/get_my-simple-tool (0.00s)
Step #15 - "dgraph":     --- PASS: TestDgraphToolEndpoints/invoke_my-simple-dql-tool (0.08s)
Step #15 - "dgraph": PASS
Step #15 - "dgraph": coverage: 4.3% of statements in ./internal/sources/..., ./internal/tools/...
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-simple-tool
Step #23 - "duckdb": 2025-08-05T02:55:05.136789447Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 1.578066} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool
Step #23 - "duckdb": 2025-08-05T02:55:05.141059586Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000003"} httpResponse: {status: 200 bytes: 55 elapsed: 2.806709} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool-by-id_with_nil_response
Step #23 - "duckdb": 2025-08-05T02:55:05.145167637Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 2.643081} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool-by-name_with_nil_response
Step #23 - "duckdb": 2025-08-05T02:55:05.147806839Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 1.436051} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-tool_without_parameters
Step #23 - "duckdb": 2025-08-05T02:55:05.149981496Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56148" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.486438} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-tool_with_insufficient_parameters
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/get_my-simple-tool
Step #23 - "duckdb": 2025-08-05T02:55:05.152046552Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56158" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.318350} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-array-tool
Step #17 - "sqlite": 2025-08-05T02:55:05.15335089Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.760137} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-simple-tool
Step #17 - "sqlite": 2025-08-05T02:55:05.159409678Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 0.993480} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool
Step #17 - "sqlite": 2025-08-05T02:55:05.162430451Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.635412} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool-by-id_with_nil_response
Step #23 - "duckdb": 2025-08-05T02:55:05.164512527Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-array-tool/invoke" method: "POST" path: "/api/tool/my-array-tool/invoke" remoteIP: "127.0.0.1:56172" proto: "HTTP/1.1" requestID: "3ed065fbf5c1/mHvOhR690W-000008"} httpResponse: {status: 200 bytes: 55 elapsed: 10.906253} 
Step #17 - "sqlite": 2025-08-05T02:55:05.164795337Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 1.150411} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-auth-tool_with_auth_token
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool-by-name_with_nil_response
Step #17 - "sqlite": 2025-08-05T02:55:05.167090173Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 1.107445} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-tool_without_parameters
Step #17 - "sqlite": 2025-08-05T02:55:05.168573858Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56160" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.300922} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-tool_with_insufficient_parameters
Step #17 - "sqlite": 2025-08-05T02:55:05.170499022Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:56180" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.367868} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-array-tool
Step #17 - "sqlite": 2025-08-05T02:55:05.172506147Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-array-tool/invoke" method: "POST" path: "/api/tool/my-array-tool/invoke" remoteIP: "127.0.0.1:56194" proto: "HTTP/1.1" requestID: "f5a2965c6456/FBpzNtgTOT-000008"} httpResponse: {status: 400 bytes: 175 elapsed: 0.552831} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/get_my-simple-tool
Step #21 - "firestore": 2025-08-05T02:55:05.190900522Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000001"} httpResponse: {status: 200 bytes: 411 elapsed: 0.908445} 
Step #21 - "firestore": 2025-08-05T02:55:05.193487263Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000002"} httpResponse: {status: 200 bytes: 196 elapsed: 0.738486} 
Step #21 - "firestore": 2025-08-05T02:55:05.194787213Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000003"} httpResponse: {status: 202 bytes: 0 elapsed: 0.288647} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-param-tool
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints
Step #21 - "firestore": 2025-08-05T02:55:05.23861058Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000004"} httpResponse: {status: 200 bytes: 384 elapsed: 42.611963} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_invalid_tool
Step #21 - "firestore": 2025-08-05T02:55:05.240460589Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000005"} httpResponse: {status: 200 bytes: 131 elapsed: 0.392287} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-param-tool_without_parameters
Step #21 - "firestore": 2025-08-05T02:55:05.241975418Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56210" proto: "HTTP/1.1" requestID: "124485f50a62/wA2Twlr49l-000006"} httpResponse: {status: 200 bytes: 160 elapsed: 0.322887} 
Step #21 - "firestore": === RUN   TestFirestor
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22e3e87e1c-0a15-4329-93e4-20e2e5d235b2%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
teIP: "127.0.0.1:55144" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000011"} httpResponse: {status: 400 bytes: 159 elapsed: 0.280306} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.130582212Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:55152" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000012"} httpResponse: {status: 200 bytes: 28 elapsed: 13.902086} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.131927206Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:55152" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000013"} httpResponse: {status: 401 bytes: 119 elapsed: 0.205301} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-required-tool_without_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.133686172Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:55164" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000014"} httpResponse: {status: 400 bytes: 159 elapsed: 0.275264} 
Step #9 - "spanner": 2025-08-05T02:56:27.135787161Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000015"} httpResponse: {status: 200 bytes: 196 elapsed: 0.792812} 
Step #9 - "spanner": 2025-08-05T02:56:27.137036464Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000016"} httpResponse: {status: 202 bytes: 0 elapsed: 0.348814} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_my-tool
Step #9 - "spanner": 2025-08-05T02:56:27.155565963Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000017"} httpResponse: {status: 200 bytes: 172 elapsed: 17.307700} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_invalid_tool
Step #9 - "spanner": 2025-08-05T02:56:27.157052163Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000018"} httpResponse: {status: 200 bytes: 131 elapsed: 0.427106} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_my-tool_without_parameters
Step #9 - "spanner": 2025-08-05T02:56:27.158483546Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000019"} httpResponse: {status: 200 bytes: 149 elapsed: 0.347090} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_my-tool_with_insufficient_parameters
Step #9 - "spanner": 2025-08-05T02:56:27.159774391Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000020"} httpResponse: {status: 200 bytes: 156 elapsed: 0.348387} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_my-auth-required-tool
Step #9 - "spanner": 2025-08-05T02:56:27.161190755Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000021"} httpResponse: {status: 200 bytes: 156 elapsed: 0.381912} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/MCP_Invoke_my-fail-tool
Step #9 - "spanner": 2025-08-05T02:56:27.173970233Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000022"} httpResponse: {status: 200 bytes: 331 elapsed: 11.689823} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_list-tables-read-only
Step #9 - "spanner": 2025-08-05T02:56:27.243697723Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/access-schema-read-only/invoke" method: "POST" path: "/api/tool/access-schema-read-only/invoke" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000023"} httpResponse: {status: 200 bytes: 56 elapsed: 68.584711} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_list-tables
Step #9 - "spanner": 2025-08-05T02:56:27.260223133Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/access-schema/invoke" method: "POST" path: "/api/tool/access-schema/invoke" remoteIP: "127.0.0.1:55172" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000024"} httpResponse: {status: 400 bytes: 266 elapsed: 15.353735} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only
Step #9 - "spanner": 2025-08-05T02:56:27.284518919Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:55174" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000025"} httpResponse: {status: 200 bytes: 28 elapsed: 21.783168} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_with_data_present_in_table
Step #9 - "spanner": 2025-08-05T02:56:27.302337237Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:55174" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000026"} httpResponse: {status: 200 bytes: 81 elapsed: 16.319067} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_create_table
Step #9 - "spanner": 2025-08-05T02:56:27.313080436Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:55174" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000027"} httpResponse: {status: 400 bytes: 407 elapsed: 9.333044} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_drop_table
Step #9 - "spanner": 2025-08-05T02:56:27.323163504Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:55176" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000028"} httpResponse: {status: 400 bytes: 363 elapsed: 8.308345} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_insert_entry
Step #9 - "spanner": 2025-08-05T02:56:27.329504248Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:55180" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000029"} httpResponse: {status: 400 bytes: 282 elapsed: 4.879078} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body
Step #9 - "spanner": 2025-08-05T02:56:27.331175232Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55192" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000030"} httpResponse: {status: 400 bytes: 99 elapsed: 0.271079} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool
Step #9 - "spanner": 2025-08-05T02:56:27.352772916Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55194" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000031"} httpResponse: {status: 200 bytes: 28 elapsed: 20.090876} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_create_table
Step #9 - "spanner": 2025-08-05T02:56:27.364228144Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55194" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000032"} httpResponse: {status: 400 bytes: 407 elapsed: 10.190374} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_drop_table
Step #9 - "spanner": 2025-08-05T02:56:27.376452043Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55206" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000033"} httpResponse: {status: 400 bytes: 363 elapsed: 10.563797} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_insert_entry
Step #9 - "spanner": 2025-08-05T02:56:27.426802413Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55220" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000034"} httpResponse: {status: 200 bytes: 18 elapsed: 48.838406} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body#01
Step #9 - "spanner": 2025-08-05T02:56:27.428423658Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55220" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000035"} httpResponse: {status: 400 bytes: 99 elapsed: 0.335186} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.443665367Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55224" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000036"} httpResponse: {status: 200 bytes: 28 elapsed: 13.760338} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.445054256Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55224" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000037"} httpResponse: {status: 401 bytes: 119 elapsed: 0.207472} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token
Step #9 - "spanner": 2025-08-05T02:56:27.446648502Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:55234" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000038"} httpResponse: {status: 401 bytes: 119 elapsed: 0.188040} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_create-table-templateParams-tool
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool
Step #9 - "spanner": 2025-08-05T02:56:27.469307527Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000039"} httpResponse: {status: 200 bytes: 18 elapsed: 21.074927} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool#01
Step #9 - "spanner": 2025-08-05T02:56:27.48997923Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000040"} httpResponse: {status: 200 bytes: 18 elapsed: 19.393074} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-templateParams-tool
Step #9 - "spanner": 2025-08-05T02:56:27.509650986Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000041"} httpResponse: {status: 200 bytes: 113 elapsed: 18.404348} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool
Step #9 - "spanner": 2025-08-05T02:56:27.531146417Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000042"} httpResponse: {status: 200 bytes: 63 elapsed: 20.148035} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results
Step #9 - "spanner": 2025-08-05T02:56:27.542396633Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000043"} httpResponse: {status: 200 bytes: 18 elapsed: 10.039279} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-fields-templateParams-tool
Step #9 - "spanner": 2025-08-05T02:56:27.560997179Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-fields-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-fields-templateParams-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000044"} httpResponse: {status: 200 bytes: 56 elapsed: 17.432606} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-filter-templateParams-combined-tool
Step #9 - "spanner": 2025-08-05T02:56:27.583037611Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-filter-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-filter-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:55242" proto: "HTTP/1.1" requestID: "0ebd1dde2f96/N4wCkcEOh1-000045"} httpResponse: {status: 200 bytes: 63 elapsed: 20.874435} 
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_drop-table-templateParams-tool
Step #9 - "spanner": --- PASS: TestSpannerToolEndpoints (116.73s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/get_my-simple-tool (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-simple-tool (0.51s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-tool-by-id_with_nil_response (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-tool-by-name_with_nil_response (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-tool_without_parameters (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-array-tool (0.04s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.04s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-tool_without_parameters (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-fail-tool (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_list-tables-read-only (0.07s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_list-tables (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_with_data_present_in_table (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_create_table (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_drop_table (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_insert_entry (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_create_table (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_insert_entry (0.05s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body#01 (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_create-table-templateParams-tool (0.00s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool#01 (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_select-templateParams-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results (0.01s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_select-fields-templateParams-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.02s)
Step #9 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_drop-table-templateParams-tool (0.00s)
Step #9 - "spanner": PASS
Step #9 - "spanner": coverage: 9.0% of statements in ./internal/sources/..., ./internal/tools/...
Step #9 - "spanner": Calculating coverage for Spanner...
Step #9 - "spanner": Spanner total coverage: 85.9%
Step #9 - "spanner": Coverage for Spanner is sufficient.
Finished Step #9 - "spanner"
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/get_my-dataplex-search-entries-tool
Step #7 - "dataplex": 2025-08-05T02:57:06.191656844Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/" method: "GET" path: "/api/tool/my-dataplex-search-entries-tool/" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000001"} httpResponse: {status: 200 bytes: 1068 elapsed: 0.633310} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/get_my-dataplex-lookup-entry-tool
Step #7 - "dataplex": 2025-08-05T02:57:06.193349941Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/" method: "GET" path: "/api/tool/my-dataplex-lookup-entry-tool/" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000002"} httpResponse: {status: 200 bytes: 1736 elapsed: 0.401715} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found
Step #7 - "dataplex": 2025-08-05T02:57:08.805589377Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000003"} httpResponse: {status: 200 bytes: 1618 elapsed: 2609.378313} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found
Step #7 - "dataplex": 2025-08-05T02:57:11.129207053Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000004"} httpResponse: {status: 200 bytes: 1618 elapsed: 2321.731282} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token
Step #7 - "dataplex": 2025-08-05T02:57:11.13114626Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000005"} httpResponse: {status: 401 bytes: 119 elapsed: 0.267108} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token
Step #7 - "dataplex": 2025-08-05T02:57:11.132661721Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000006"} httpResponse: {status: 401 bytes: 119 elapsed: 0.164533} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found
Step #7 - "dataplex": 2025-08-05T02:57:12.438589541Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000007"} httpResponse: {status: 200 bytes: 18 elapsed: 1304.777984} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found#01
Step #7 - "dataplex": 2025-08-05T02:57:12.758572669Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000008"} httpResponse: {status: 200 bytes: 1404 elapsed: 316.456640} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization
Step #7 - "dataplex": 2025-08-05T02:57:13.112035432Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000009"} httpResponse: {status: 200 bytes: 1404 elapsed: 351.668781} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token#01
Step #7 - "dataplex": 2025-08-05T02:57:13.114011783Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000010"} httpResponse: {status: 401 bytes: 119 elapsed: 0.201583} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token#01
Step #7 - "dataplex": 2025-08-05T02:57:13.115466306Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.204117} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found_or_Permission_Denied
Step #7 - "dataplex": 2025-08-05T02:57:13.203027159Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000012"} httpResponse: {status: 400 bytes: 422 elapsed: 86.431610} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View
Step #7 - "dataplex": 2025-08-05T02:57:13.48340623Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000013"} httpResponse: {status: 200 bytes: 1452 elapsed: 278.915299} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types
Step #7 - "dataplex": 2025-08-05T02:57:13.725366722Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000014"} httpResponse: {status: 400 bytes: 318 elapsed: 240.280211} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect
Step #7 - "dataplex": 2025-08-05T02:57:14.073266756Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:51648" proto: "HTTP/1.1" requestID: "8d912f882e32/YdTgwGBZGL-000015"} httpResponse: {status: 200 bytes: 1901 elapsed: 346.468256} 
Step #7 - "dataplex": --- PASS: TestDataplexToolEndpoints (129.88s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/get_my-dataplex-search-entries-tool (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/get_my-dataplex-lookup-entry-tool (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found (2.61s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found (2.32s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_Not_Found (1.31s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found#01 (0.32s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization (0.35s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token#01 (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token#01 (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_Not_Found_or_Permission_Denied (0.09s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View (0.28s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types (0.24s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect (0.35s)
Step #7 - "dataplex": PASS
Step #7 - "dataplex": coverage: 6.1% of statements in ./internal/sources/..., ./internal/tools/...
Step #7 - "dataplex": Calculating coverage for Dataplex...
Step #7 - "dataplex": Dataplex total coverage: 84.5%
Step #7 - "dataplex": Coverage for Dataplex is sufficient.
Finished Step #7 - "dataplex"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22e3e87e1c-0a15-4329-93e4-20e2e5d235b2%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616