Saltar al contenido principal

Permisos y config files en Jenkins

Cómo están organizados los permisos de jenkins.sils.tech, qué puede ver y hacer cada uno, y dónde están los config files. Vigente desde el 19/10/2026.

Login​

Se entra con la cuenta de GitLab (botón de login de Jenkins → gitlab.sils.tech). No hay usuarios locales.

Los permisos se asignan por grupo de GitLab. Jenkins compara el nombre del grupo, así que:

  • Hay que ser miembro directo del grupo (SILSv2 o producto). Ser miembro de un subgrupo (por ejemplo silsv2/devs) no alcanza.
  • Si te agregan a un grupo, cerrá sesión en Jenkins y volvé a entrar para que tome el cambio.

Organización de los jobs​

CarpetaContenido
KEEPERTodos los jobs de Keeper (antes estaban sueltos en la raíz).
PRODUCTOJobs de producto (SilsX, dashboard-k2, TERA, etc.).
playgroundPruebas. Solo admin.

Las URLs de los jobs de Keeper ahora llevan el prefijo KEEPER/, por ejemplo https://jenkins.sils.tech/job/KEEPER/job/apis/. Los webhooks de GitLab ya apuntan a las rutas nuevas.

Quién puede qué​

QuiénVePuede
Miembros del grupo GitLab SILSv2Carpeta KEEPER y todo su contenidoVer jobs y logs, buildear, cancelar, ver workspace, configurar, crear y borrar jobs, editar y borrar builds, administrar los config files de KEEPER
Miembros del grupo GitLab productoCarpeta PRODUCTO y todo su contenidoLo mismo, sobre PRODUCTO y sus config files
Miembros de los dos gruposAmbas carpetasLo anterior en ambas
Cualquier otro usuario de GitLabNada (puede loguearse pero no ve jobs)—
Admin (francusa)TodoConfiguración de Jenkins, plugins, agentes, credenciales, config files globales, permisos

Todos los usuarios con acceso pueden además crear y editar vistas (las pestañas del dashboard).

Para pedir acceso: que te agreguen como miembro del grupo de GitLab que corresponda.

Roles en Jenkins (para admins)​

Se configuran en Manage Jenkins → Manage and Assign Roles (plugin Role-based Authorization Strategy):

RolTipoPatrónAsignado aPermisos
adminGlobal—francusaOverall/Administer
devsGlobal—grupos SILSv2, productoOverall/Read, View/*
keeper-devsItemKEEPER(/.*)?grupo SILSv2Job: Read, Build, Cancel, Workspace, Configure, Create, Delete · Run: Update, Delete
producto-devsItemPRODUCTO(/.*)?grupo productoÍdem

Config files​

Los config files (plugin Config File Provider) son los archivos .env, .npmrc, service accounts, etc. que los pipelines usan con configFileProvider / configFile(fileId: '...').

Dónde están​

ScopeDónde encontrarlosQuién los editaCantidad
Carpeta KEEPEREntrar a la carpeta KEEPER → Config Files (menú izquierdo)Miembros de SILSv2~280
Carpeta PRODUCTOEntrar a la carpeta PRODUCTO → Config FilesMiembros de producto~155
GlobalManage Jenkins → Managed filesSolo admin12

Los globales son los que comparten jobs de las dos carpetas: credenciales de GCP por ambiente (sils-des, sils-stage, sils-ypf), npmrcConfigFile, jmxremoteCreds, los * RULES COMPLETE KILOMETROS y algunos de playground. Si necesitás cambiar uno, pedíselo al admin.

Cómo los encuentra un job​

Cuando un pipeline pide configFile(fileId: 'abc-123'), Jenkins busca ese ID en este orden:

  1. En la carpeta del job y sus carpetas padre (por ejemplo KEEPER/apis/dev → KEEPER/apis → KEEPER).
  2. Si no lo encuentra, en los globales.

Consecuencias:

  • Un job de KEEPER no ve los config files de PRODUCTO (y viceversa).
  • Si creás en una carpeta un config file con el mismo ID que uno global, el de la carpeta tiene prioridad para los jobs de esa carpeta.
  • Al crear un config file nuevo, hacelo en la carpeta de tu proyecto (no hace falta admin).

Seguridad​

  • Quien puede configurar jobs en una carpeta puede leer cualquier config file de esa carpeta desde un pipeline. Los permisos de carpeta separan KEEPER de PRODUCTO, pero dentro de una carpeta no hay forma de ocultar un config file a quien configura jobs.
  • No pongas secretos en el log del build (cat, echo, printenv).
  • Los API tokens de Jenkins no cargan los grupos de GitLab: un script que use usuario:token solo tiene los permisos asignados a ese usuario por nombre (por defecto, ninguno). Si una automatización necesita acceso, pedí al admin que asigne el usuario al rol correspondiente.