feat: add a Nebius Token Factory example provider profile
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Lee los perfiles de ejemplo existentes en providers/ y la lista de IDs esperados en list_provider_profiles_returns_built_in_profile_categories. Añade providers/nebius-token-factory.yaml con el mismo formato, permitiendo las rutas de inferencia enumeradas y excluyendo las rutas de administración mencionadas en el issue. El trabajo estará terminado cuando el perfil pase la comprobación de lint y se importe, y la prueba de categorías de perfiles incluya su ID.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
User Story
I use OpenShell to run coding and research agents in sandboxes, and my models are served by Nebius Token Factory through its OpenAI-compatible API at https://api.tokenfactory.nebius.com/v1. Today I have to hand-write a provider profile for it, and the obvious copy of the openai profile with the host swapped would hand my agents a key that can also create dedicated endpoints and fine-tuning jobs on my account.
Problem Statement
providers/ has no example profile for Nebius Token Factory. Operators who use it have to write one from scratch and decide on their own which parts of the Token Factory API a sandboxed agent should reach.
Impact / Why This Matters
A Token Factory API key works on more than inference. On the same host it can list, upload, and delete files and datasets, start fine-tuning jobs and batch operations, and create, update, or delete dedicated endpoints, which are billable GPU deployments. A profile that grants the whole host, like the existing openai, nvidia, and deepinfra examples, lets a sandboxed agent use the injected key for all of that. Operators who don't read the API reference closely will not notice.
Proposed Design
Add providers/nebius-token-factory.yaml, following the format of the other example profiles:
id: nebius-token-factory
display_name: Nebius Token Factory
category: inference
inference_capable: true
credentials:
- name: api_key
env_vars: [NEBIUS_API_KEY]
auth_style: bearer
header_name: authorization
endpoints:
- host: api.tokenfactory.nebius.com
port: 443
protocol: rest
enforcement: enforce
rules:
- allow: { method: POST, path: "/v1/chat/completions" }
- allow: { method: POST, path: "/v1/completions" }
- allow: { method: POST, path: "/v1/embeddings" }
- allow: { method: POST, path: "/v1/rerank" }
- allow: { method: POST, path: "/v1/responses" }
- allow: { method: GET, path: "/v1/models" }
binaries: [/usr/bin/curl, /usr/local/bin/curl]
Workflow:
openshell provider profile import -f providers/nebius-token-factory.yaml --global
openshell provider create --name nebius --type nebius-token-factory --credential NEBIUS_API_KEY
openshell sandbox create --provider nebius -- curl -sS https://api.tokenfactory.nebius.com/v1/models
NEBIUS_API_KEY matches the variable name in the Token Factory documentation.
Acceptance Criteria
-
providers/nebius-token-factory.yamllints and imports, and has the same header block as the other examples (client binaries, reference layout, credential scope, endpoint access, smoke test). - A sandbox with the provider attached can call chat completions (streaming included), completions, embeddings, rerank, the Responses API, and the model list.
- In that sandbox, requests to the files, datasets, fine-tuning, operations, and dedicated-endpoint APIs are denied by the proxy.
- No telemetry or provider-table changes are needed, in line with #3906.
Alternatives Considered
- Leave it to operators to copy the
openaiprofile and change the host. That gives agents the whole Token Factory API, as described above. - Grant
/v1/**read-write. This is simpler, but it still allows file, dataset, fine-tuning, and operation calls, and it would allow new management routes added under/v1later. - An endpointless profile bound per sandbox from policy. That suits per-deployment hosts, but Token Factory has a single public host, so a fixed endpoint is simpler for operators.
Agent Investigation
- Profiles are import-only examples under
providers/. Adding one changes only the YAML and the expected-ID list inlist_provider_profiles_returns_built_in_profile_categories, as in #3904. - I listed the routes from Token Factory's published OpenAPI spec (
https://api.tokenfactory.nebius.com/openapi.json). Inference routes are the ones above. Management routes are under/v1/files,/v1/datasets,/v1/fine_tuning,/v1/operations, and/v0/dedicated_endpoints.
- Lenguaje dominante
- Rust
- Estrellas
- 17.1k
- Forks
- 1.8k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 314
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/OpenShell
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
bug(python): OIDC refresh drops the gateway's oidc_scopesPosiblemente ocupada @jyotir07 la tomó hace 1 día. Abiertostate:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
NVIDIA/OpenShell#4919 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug: workspace access hint suggests a --subject command that fails for hyphen-leading OIDC subjectsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
bug(install): install.sh prints gawk "escape sequence \. treated as plain ." warnings on RPM hostsPosiblemente ocupada @ericcurtin la tomó hace 4 días. Abiertostate:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA/OpenShell
Issues similares
-
documentation enhancement SIEM
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
ADORSYS-GIS/wazuh-agent-status#265 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
manuscript-lang/manuscript#1629 ·
Los mantenedores suelen responder en 1 día
-
autofixer: follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
tursodatabase/turso#10885 ·
Los mantenedores suelen responder en 1 día
-
🐞 bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
nannou-org/gantz#475 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100