Eltheon AIGateway
Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.AIGateway provides the
provider-neutral Eltheon AI gateway, provider/model/usage profiles, protected
credentials, routing, quotas, administration APIs and Razor pages.
Register the feature and its database context:
builder.Services.AddEltheonAiGateway(options =>
{
options.EnableGateway = true;
options.EnableApplicationApi = false;
});
builder.Services.AddEltheonAiGatewayDataStore(
db => db.UseSqlite(connectionString));
builder.Services
.AddRazorPages()
.AddEltheonAiGatewayApplicationPart();
Applications consume IAiGateway with a logical usage-profile key. They never
select provider credentials or remote model identifiers directly. Tool calls
are returned to the application and are not executed by this package.
The remote /api/ai/v1 application API is disabled by default. Credentials are
protected with ASP.NET Core Data Protection and are never returned by a read
API, written to telemetry, or persisted as plaintext.
The feature-owned Admin RCL uses the same Assan/Bootstrap controls, page-header actions, navigation tabs, responsive cards, tables, validation summaries, and localized empty states as the other Eltheon administration features. Its live cockpit visualizes request volume, token usage, outcomes, profile latency, and recent secret-safe invocation activity with the ApexCharts bundle already provided by the Admin shell. Provider, model, usage-profile, route, quota, structured-output, and tool definitions are edited through typed fields and visual builders; JSON remains an internal wire format. The provider workspace exposes a dedicated credential form: administrators select a provider, enter its API key or token, and use the explicit save or replace action. The current concurrency token is refreshed immediately before the credential mutation; successful writes clear the input and update the credential status without ever returning the protected value. Model discovery opens a selectable Assan/Bootstrap table instead of a passive result list. Administrators can adjust logical keys and display names, select all or individual discoveries, and import up to 100 enabled model profiles in one action. Already imported remote models are marked and cannot be selected again. Imported profiles are loaded into the model registry immediately and therefore appear in the visual route selector when a usage profile is created or edited. The UI uses the EltheonJS Core bundle and adds only a narrow typed SSE decoder for the streaming test console.
Built-in adapters are openai-compatible and ollama-native. Outbound
endpoints are checked against the configured network policy and resolved
addresses are pinned for the connection. Redirects are disabled unless the
provider profile explicitly enables them; every enabled redirect is
revalidated and the chain is limited to three hops. Provider calls use a
per-host circuit breaker and no automatic generative retry.
Native Ollama profiles use the server root such as
http://127.0.0.1:11434, no authentication, and the loopback network policy.
The former Admin value ollama remains a read-compatible alias and is
canonicalized to ollama-native whenever a provider profile is saved.
The package deliberately does not execute tools, manage agents, run RAG, expose
an OpenAI-compatible public API, or retain prompt and response bodies. See
docs/Eltheon_AIGateway_v1_Operations.md and
docs/Eltheon_AIGateway_v1_Security.md in the Eltheon repository for the
operational and security runbooks.
Adviser contributors
AddEltheonAiGateway() contributes two read-only checks through the neutral
Core.Abstractions Adviser contract:
eltheon.aigateway.routing-readinessvalidates enabled usage-profile routes, models, providers, capabilities, and local adapter resolution without contacting a provider.eltheon.aigateway.quota-pressureaggregates only current quota windows per policy and reports soft-threshold pressure or unknown usage under a fail-closed hard budget.
Subjects contain logical usage-profile or quota-policy keys. Evidence never contains provider endpoints, remote model IDs, credentials, quota dimensions, consumer keys, subject keys, absolute token counts, or cost values.