listConnections and
getConnectionCatalog. MCP clients use connections_list and
connections_catalog. None of these reads returns a secret or grants permission
to read content or invoke a model.
Native source setup
Open Connections → Add a connection, select a connector and enter its exact account scope. Save or reuse its credential, then save the account setup. On the account page, discover resources, select the ones to permit and review the grant. Child resources require their own discovery and review. Discovery metadata alone does not authorize all documents, tenants, namespaces or models in an account. Older configuration-only drafts remain visible. If they lack the current execution fields, create a new reviewed setup with those fields; repairing a credential reference does not edit the account’s configuration. Configured resources are labeled separately from resources observed through the provider. Empty, partial and unavailable responses remain distinct. Reads and searches return bounded previews; an incomplete result does not establish that the entire source has been checked. Response text is returned to the current request; operation receipts retain metadata and hashes rather than document bodies or query text.
PDF, Office, images and other binary ingestion are not silently treated as text.
Use EvalGate’s supported document-ingestion path for those formats. S3 directory
buckets/access points/Outposts, sovereign SharePoint clouds and remote private
worker dispatch require additional native qualification. PostgreSQL pgvector
similarity and arbitrary database SQL are not enabled here. PostgreSQL previews
represent non-safe-integer numeric values as strings to preserve their exact
source lexemes.
PostgreSQL operations run read only with a ten-second statement timeout.
Cancelling a request closes local connections; if the upstream server refuses
cancellation, the statement timeout remains the server-work bound.
Credentials and runtime access
Credentials are stored by the existing canonical credential owner, with the deployment’s configured encryption and erasure-ledger requirements. Secrets do not belong in account fields or URLs. Source access uses the provider’s own ACLs on every operation. Paused/revoked roots, rotated credentials and changed resource selections require a fresh review. Expired user OAuth access tokens must be replaced; automatic rotating-refresh-token persistence is not implemented.
Kong, Portkey, Cloudflare and Vertex model discovery and model traffic use
independent credential references. Register a runtime gateway with the exact
allowed model IDs, then bind it to the account with Model or tool execution
purpose. Management tokens are never reused as an implicit runtime fallback.
Cloudflare runtime credentials use JSON
{"apiKey":"…","gatewayId":"…"}
with the exact account AI v1 base URL. Vertex runtime uses a current OAuth access
token and its exact regional endpoints/openapi base. Calls remain subject to
the canonical model policy, pricing, reservations and evidence requirements.
Operators must also configure the existing reviewed gateway upstream/provider
bindings and physical request contracts, including verified liability and a
finite daily budget. Missing pricing or transport review blocks a call; source
discovery does not create a budget exception. See the model-provider deployment
guide for those canonical controls.
An invocation whose response is lost has an uncertain outcome. Use the read-only
receipt lookup with the same operation identity; do not create a new identity as
an automatic retry. Credential saves also need inventory inspection after a lost
response because their current save contract cannot deduplicate that write.
Shared native operations
The web flow calls these same authenticated contracts used by the generated TypeScript/Python OpenAPI clients andevalgate api:
Mutations require a UUID
idempotencyKey, expectedRevision,
expectedAuthorityEpoch and expectedSelectionEpoch from the current runtime
review. Use a snapshot’s snapshotId plus its actual nativeIds to grant access.
Use parentGrantId to discover children and grantId to execute. Continuations
are opaque receipt IDs bound to the same account, principal, operation, query,
selection and authority; never pass a raw provider cursor. Expired or changed
reviews return a conflict and require fresh discovery. Content is not replayed
from receipts. Read/search/invoke receipt lookup recovers operation identity,
state and timestamps; provider task details and content are not replayed. An A2A
task state is the observation returned with the original send. EvalGate does not
poll or continue that task; inspect it with the upstream provider.
Current resource review is bounded to1000 grants. Granting a page advances the
selection epoch and clears its old continuation; restart discovery to review
another page. Shared multi-page approval and a searchable grant inventory are
not enabled.
Discover the exact generated operation names with evalgate api --list-operations --json or
the OpenAPI operation inventory. These source operations do not change the
released public MCP management boundary or publish a new SDK package.
Deployment-local sources
An operator can installEVALGATE_CONNECTOR_ENVIRONMENT_BINDINGS as a JSON array
in the self-hosted server environment. Each binding contains an id UUID,
positive version, organizationId, driverId, exact accountScope,
environment (dev, staging or prod), secret, and an addresses map from
exact service origins to approved IP addresses. The setup UI receives only the
nonsecret environment-secret:UUID:version reference and scope metadata.
The address registry must include every service origin that the selected
protocol uses, including fixed OAuth and approved download origins. An unlisted
origin is refused even if its DNS addresses are public.
For PostgreSQL, use a postgresql://USER:PASSWORD@HOST:PORT/DATABASE secret with
no query/hash and a read-only upstream role. The addresses entry uses the same
postgresql://HOST:PORT origin. DNS answers must belong to the approved address
set; TLS still verifies the original host. Bindings cannot substitute a shared
application database credential or another workspace/account’s authority.