Files
fn_registry/python/functions/infra/popelis_create_user.md
T
egutierrez fd5787c55f chore: auto-commit (43 archivos)
- .mcp.json
- bash/functions/infra/write_mcp_jupyter_config.md
- bash/functions/infra/write_mcp_jupyter_config.sh
- cpp/CMakeLists.txt
- cpp/apps/chart_demo
- cpp/apps/shaders_lab
- cpp/functions/gfx/gl_framebuffer.cpp
- cpp/functions/gfx/gl_framebuffer.h
- cpp/functions/gfx/gl_framebuffer.md
- cpp/functions/gfx/mesh_gpu.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 17:28:47 +02:00

2.6 KiB

name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags params output uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path
popelis_create_user function py infra 1.0.0 impure def popelis_create_user(base_url: str, admin_token: str, username: str, password: str, timeout: float = 30.0) -> dict Crea un usuario en la API de administracion de Popelis (POST /api/admin/users). El backend crea automaticamente un usuario Jellyfin espejo (Modelo B). Registro CERRADO: requiere cabecera X-Admin-Token.
popelis
http
admin
user
jellyfin
infra
name desc
base_url URL base del servicio sin trailing slash. Ej: https://popelis.datardos.com
name desc
admin_token Token de administracion. Se envia como cabecera X-Admin-Token. No logear ni exponer.
name desc
username Nombre de usuario a crear. Debe ser unico en el sistema.
name desc
password Contrasena inicial del nuevo usuario.
name desc
timeout Timeout en segundos para la peticion HTTP. Default 30.0.
Dict con los datos del usuario creado: {id: N, username: str, jfUserId: str}
false error_go_core
json
urllib.request
urllib.error
false
python/functions/infra/popelis_create_user.py

Ejemplo

from infra.popelis_create_user import popelis_create_user

result = popelis_create_user(
    base_url="https://popelis.datardos.com",
    admin_token="<admin-token>",
    username="alice",
    password="s3cur3pass",
)
# result == {"id": 42, "username": "alice", "jfUserId": "abc123-..."}
print(result)

Cuando usarla

Cuando necesites dar de alta un usuario nuevo en Popelis desde un script de administracion, pipeline de onboarding o agente. Usar ANTES de popelis_set_password (que requiere que el usuario ya exista).

Gotchas

  • Token sensible: admin_token es un secreto. Nunca logear el valor, interpolarlo en URLs ni persistirlo en texto plano.
  • Registro cerrado: el endpoint rechaza cualquier peticion sin X-Admin-Token valido (HTTP 401/403).
  • 409 si ya existe: si el username ya esta registrado, el servidor devuelve HTTP 409 y la funcion lanza ValueError. Para idempotencia, captura el error y comprueba "409" en el mensaje o verifica existencia previa.
  • Jellyfin espejo: el backend crea automaticamente un usuario Jellyfin con el mismo username. Si Jellyfin no esta disponible en el momento de la llamada, la creacion puede fallar en el backend (el error llega como 5xx).
  • Solo stdlib: no requiere requests ni dependencias externas — usa urllib.request.