Skip to content

Allow an HTTP base_url for model providers, like OAC_PUBLIC_URL already does #416

Description

@velrith

What I'm asking for

Let a deployment default model provider be configured with an http:// base_url, instead of requiring https://.

Where it's blocked

contracts/agents-api/v1/model_provider_admission.go:12 hard-codes providerScheme = "https", and validModelProviderBaseURL rejects anything else. So PUT /core/v1/harnesses/{harness}/model-configuration returns 400 model_provider_base_url_invalid for a perfectly reachable local endpoint, e.g. http://127.0.0.1:7351 or http://10.0.0.5:8080.

This is a distinct surface from #398 / #408: those changed the public URL and the node paths. The model provider base_url keeps the unconditional HTTPS rule.

Why this looks inconsistent

The repo already treats plain HTTP as acceptable where it does not leave the trust boundary:

The provider base_url is the one remaining surface that maps http to "invalid" unconditionally, even when the host is the same loopback the gateway already uses.

Concrete case, not hypothetical

I run a self-hosted model proxy on this host (an OpenAI / Anthropic / Responses-compatible gateway on 127.0.0.1:7351) and I want the Harnesses to use it. Today the only way through is to stand up a TLS terminator in front of it and install a self-signed CA into the Runtime image's trust store — extra moving parts for a connection that never leaves the machine.

Suggested shape

Accept http where the same rule the rest of Core already uses says it is safe — loopback, or literal private ranges — and keep https required everywhere else. That mirrors #408 exactly and keeps the current default unchanged. If you would rather make it explicit, an opt-in works too.

I am not asking to drop TLS. A plain-HTTP exception limited to loopback/private hosts would cover the local-proxy case without weakening anything reachable from the network.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions