원클릭으로
openai
Call the OpenAI API through Warden — chat, embeddings, moderation — without holding an OpenAI API key.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Call the OpenAI API through Warden — chat, embeddings, moderation — without holding an OpenAI API key.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Call the Ansible Tower / AWX / AAP REST API through Warden — launch job templates, read inventories, check job status — without holding a PAT.
Call Jira, Confluence, or Bitbucket REST APIs through Warden — search and create issues, read and write pages, list repos — without holding an API token, PAT, or app password.
Call AWS services (S3, EC2, Lambda, DynamoDB, STS, …) through Warden's SigV4 gateway.
Call the GitHub REST API or clone/push Git repos through Warden — without holding a GitHub PAT. Covers REST (read repos, manage issues, push releases) and Git smart-HTTP (clone, fetch, push).
Call the GitLab REST API or clone/push Git repos through Warden — without holding a GitLab access token. Covers REST (read projects, manage issues, trigger pipelines) and Git smart-HTTP (clone, fetch, push).
Talk to AWS-hosted MCP through Warden — without holding IAM keys. Your MCP client points at Warden under a role fixed at attach time (one attached server per role). Fronts both AWS's hosted MCP Server (aws-mcp.{region}.api.aws) and customer-owned MCP servers on Bedrock AgentCore.
| name | openai |
| description | Call the OpenAI API through Warden — chat, embeddings, moderation — without holding an OpenAI API key. |
| category | provider-guide |
| provider | openai |
| requires | [] |
| upstream | OpenAI REST API (api.openai.com) |
Warden proxies OpenAI REST API requests. The agent calls a Warden
URL; Warden authenticates the caller (JWT/cert), looks up the OpenAI
API key bound to the chosen role, injects Authorization: Bearer <key>
plus optional OpenAI-Organization and OpenAI-Project headers,
and forwards. The agent never holds an API key.
<gateway-url> comes from the role you chose: the list_roles discovery tool
returns each role with a description, and for a non-MCP provider the operator
embeds the role's gateway URL in it — a relative path
/v1/<namespace>/<mount>/role/<role>/gateway/, with the namespace, mount, and role already baked in. Prepend $WARDEN_ADDR (the address you already
used to discover your roles).
The role/<role>/ segment in <gateway-url> is the role this call runs under.
To act under a different role, use the <gateway-url> of that role from
list_roles — each role provides its own role-bearing URL in its description.
Present your identity on every call: Authorization: Bearer <jwt>, or an mTLS
client certificate. A 401 means the JWT expired (typical TTL 5–60 min) —
refresh and retry.
URL pattern : $WARDEN_ADDR<gateway-url><openai-api-path>
Auth header : Authorization: Bearer <jwt>
The same shape as upstream OpenAI requests, just with the host swapped out and a JWT instead of an API key.
from openai import OpenAI
client = OpenAI(
base_url=f"{WARDEN_ADDR}<gateway-url>", # e.g. .../v1/openai/role/llm-app/gateway/
api_key="<jwt>", # JWT, not an OpenAI key
)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: `${process.env.WARDEN_ADDR}<gateway-url>`, // e.g. .../v1/openai/role/llm-app/gateway/
apiKey: "<jwt>",
});
(Examples use a concrete <gateway-url> of /v1/openai/role/llm-app/gateway/;
substitute the one from your role's list_roles description.)
Chat completion via curl:
curl -H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hi"}]}' \
$WARDEN_ADDR/v1/openai/role/llm-app/gateway/chat/completions
Embeddings:
curl -H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{"model":"text-embedding-3-small","input":"some text"}' \
$WARDEN_ADDR/v1/openai/role/embeddings/gateway/embeddings
List models:
curl -H "Authorization: Bearer <jwt>" \
$WARDEN_ADDR/v1/openai/role/llm-app/gateway/models
/v1 auto-prepend (unlike Vault) — write the OpenAI path
exactly as upstream documents it: chat/completions,
embeddings, models, etc.403 forbidden with the policy reason.max_tokens.OpenAI-Organization / OpenAI-Project headers are injected
only when the operator configured them on the credential. You can
also override per-request.stream=true mode.