<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Israel Olvera</title>
    <description>The latest articles on DEV Community by Israel Olvera (@skrigueztep).</description>
    <link>https://dev.to/skrigueztep</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F821444%2F23b930c0-6b9e-44b0-9123-e3cb67d34633.png</url>
      <title>DEV Community: Israel Olvera</title>
      <link>https://dev.to/skrigueztep</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skrigueztep"/>
    <language>en</language>
    <item>
      <title>Trabajando con registros privados</title>
      <dc:creator>Israel Olvera</dc:creator>
      <pubDate>Mon, 14 Mar 2022 19:30:05 +0000</pubDate>
      <link>https://dev.to/htech/trabajando-con-registros-privados-35i7</link>
      <guid>https://dev.to/htech/trabajando-con-registros-privados-35i7</guid>
      <description>&lt;p&gt;&lt;em&gt;El contenido presentado es orientado al ambiente de desarrollo con JS y TS, y hay una gran cantidad de recursos que pueden explicar este contenido, pero yo trataré de explicarlo de la forma más clara y sencilla que me sea posible. &lt;br&gt;&lt;br&gt; Claro está que también compartiré las cosas con las que me he encontrado y te daré la solución con un fundamento detrás para que no solo hagas copy/paste&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Los registros privados son muy comunes, en el entorno empresarial; cuando se requiere alojar múltiples módulos de uso interno, sin necesidad de pagar por el servicio organizacional de npm. También servicios de alojamiento de repositorios como Github y GitLab ofrecen la funcionalidad de tener esta característica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contenidos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Login

&lt;ul&gt;
&lt;li&gt;Login con 2FA activo&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Instalación&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Login
&lt;/h2&gt;

&lt;p&gt;&lt;a id="login"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El login es sencillo, recordemos que por defecto siempre se va a apuntar al registro público de &lt;a href="https://registry.npmjs.org"&gt;npm&lt;/a&gt;, entonces, para hacer el login basta con ejecutar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ó bien para apuntar a un registro privado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login &lt;span class="nt"&gt;--registry&lt;/span&gt; &amp;lt;dirección-del-registro&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cambiar la configuración del registro por defecto&lt;/strong&gt;, también es fácil:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm config &lt;span class="nb"&gt;set &lt;/span&gt;registry &amp;lt;dirección-del-registro&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;con esta modificación se puede ejecutar &lt;em&gt;&lt;strong&gt;npm login&lt;/strong&gt;&lt;/em&gt; y el login será directo a la dirección del registro que se asignó&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: Esta configuración solo será aplicada de forma "local", pero para que las modificaciones tomen efecto para todo el sistema recuerda usar la bandera &lt;strong&gt;&lt;em&gt;--global&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Login con 2FA activo
&lt;/h3&gt;

&lt;p&gt;&lt;a id="login2fa"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cuando se hace uso del Two-Factor Authentication (2FA), se requiere un token para poder hacer un login "exitoso". Si se realiza un login sin el token y se trata de instalar alguna dependencia organizacional o de un repositorio privado; la instalación fallará.&lt;/p&gt;

&lt;p&gt;Para lograr realizar la instalación se tiene que realizar lo siguiente:&lt;/p&gt;

&lt;p&gt;1.- Ejecutar: &lt;strong&gt;&lt;code&gt;npm login&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
2.- Obtener el token que se ha creado&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Este token se genera automáticamente, se encuentra en el archivo .npmrc ubicado en el directorio $HOME &lt;br&gt;&lt;br&gt; En Windows es: C:/Users/ y en Linux, si soy sincero, no lo recuerdo y no quiero obtener la respuesta de google; quiero reforzar un poco la memoria. Pero puedes obtener la ruta del directorio con $HOME. &lt;br&gt;&lt;br&gt; El token es la cadena de texto dentro de las comillas después de &lt;strong&gt;&lt;em&gt;:authToken=&lt;/em&gt;&lt;/strong&gt;, este a su vez deberá corresponder de la dirección del registro a la cual está asignada.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;3.- Volver a ejecutar el login pero agregando el token al final de la siguiente forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login &lt;span class="nt"&gt;--registry&lt;/span&gt; &amp;lt;dirección-del-registro&amp;gt;/:_authToken&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.- Volver a tratar de instalar las dependencias&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalación
&lt;/h2&gt;

&lt;p&gt;&lt;a id="installation"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cuando se hace uso de los registros que proveen servicios como Gitlab, se requiere un token (con los permisos para acceder al registro), puedes encontrar más información en &lt;a href="https://docs.gitlab.com/ee/user/packages/package_registry/"&gt;Gitlab | Package Registry&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: El token para la instalación de dependencias &lt;strong&gt;no&lt;/strong&gt; es el mismo que el token que se requiere para hacer el login&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Es común que en los proyectos se llegue a ver un archivo .npmrc dentro del proyecto, con la configuración para poder conocer los scopes (alcances) de las dependencias que el proyecto requiere&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: Es IMPORTANTE que NUNCA, NUNCA, NUNCA se agreguen tokens o keys dentro de estos, por cuestiones de seguridad, es más conveniente que se usen variables de entorno para asignarlos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como se puede ver en &lt;a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html#authenticate-with-a-ci-job-token"&gt;Gitlab&lt;/a&gt;, hay varias formas de identificar a los módulos/dependencias de un proyecto. En la documentación se centra en el CI/CD, pero se puede realizar a nivel instancia, como se expondrá en este articulo.&lt;/p&gt;

&lt;p&gt;Primero en el proyecto, debe de existir el fichero .npmrc, en el que se deberá identificar al registro del cual se obtendrán las dependencias, como por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;@foo:registry&lt;span class="o"&gt;=&lt;/span&gt;https://gitlab.example.com/api/v4/packages/npm/
//gitlab.example.com/api/v4/packages/npm/:_authToken&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;NOTA: Es importante que se mantenga la sección &lt;strong&gt;&lt;em&gt;${TOKEN}&lt;/em&gt;&lt;/strong&gt;, esto; tomará el valor de la variable que se indica entre las llaves&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ahora, deberás generar un &lt;a href="https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html"&gt;token&lt;/a&gt;, como ya se mencionó este token deberá tener permisos para poder acceder al registro.&lt;/p&gt;

&lt;p&gt;Este token puede ser usado como variable del entorno, si se ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto funcionará siempre en entornos *NIX, en sistemas Windows, en lo personal uso Git Bash pero desafortunadamente con esta ultima opción; esto no persiste en el entorno. En entornos Windows con sub kernel de linux, desconozco si funciona.&lt;/p&gt;

&lt;p&gt;Hecho esto, ya se podrán instalar las dependencias desde los registros privados.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Trabajando con registros NPM privados</title>
      <dc:creator>Israel Olvera</dc:creator>
      <pubDate>Tue, 01 Mar 2022 02:59:59 +0000</pubDate>
      <link>https://dev.to/skrigueztep/trabajando-con-registros-npm-privados-2d78</link>
      <guid>https://dev.to/skrigueztep/trabajando-con-registros-npm-privados-2d78</guid>
      <description>&lt;p&gt;&lt;em&gt;El contenido presentado es orientado al ambiente de desarrollo con JS y TS, y hay una gran cantidad de recursos que pueden explicar este contenido, pero yo trataré de explicarlo de la forma más clara y sencilla que me sea posible. &lt;br&gt;&lt;br&gt; Claro está que también compartiré las cosas con las que me he encontrado y te daré la solución con un fundamento detrás para que no solo hagas copy/paste&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Los registros privados son muy comunes, en el entorno empresarial; cuando se requiere alojar múltiples módulos de uso interno, sin necesidad de pagar por el servicio organizacional de npm. También servicios de alojamiento de repositorios como Github y GitLab ofrecen la funcionalidad de tener esta característica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contenidos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Login

&lt;ul&gt;
&lt;li&gt;Login con 2FA activo&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Instalación&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Login
&lt;/h2&gt;

&lt;p&gt;&lt;a id="login"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El login es sencillo, recordemos que por defecto siempre se va a apuntar al registro público de &lt;a href="https://registry.npmjs.org"&gt;npm&lt;/a&gt;, entonces, para hacer el login basta con ejecutar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ó bien para apuntar a un registro privado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login &lt;span class="nt"&gt;--regsitry&lt;/span&gt; &amp;lt;dirección-del-registro&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cambiar la configuración del registro por defecto&lt;/strong&gt;, también es fácil:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm config &lt;span class="nb"&gt;set &lt;/span&gt;registry &amp;lt;dirección-del-registro&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;con esta modificación se puede ejecutar &lt;em&gt;&lt;strong&gt;npm login&lt;/strong&gt;&lt;/em&gt; y el login será directo a la dirección del registro que se asignó&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: Esta configuración solo será aplicada de forma "local", pero para que las modificaciones tomen efecto para todo el sistema recuerda usar la bandera &lt;strong&gt;&lt;em&gt;--global&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Login con 2FA activo
&lt;/h3&gt;

&lt;p&gt;&lt;a id="login2fa"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cuando se hace uso del Two-Factor Authentication (2FA), se requiere un token para poder hacer un login "exitoso". Si se realiza un login sin el token y se trata de instalar alguna dependencia organizacional o de un repositorio privado; la instalación fallará.&lt;/p&gt;

&lt;p&gt;Para lograr realizar la instalación se tiene que realizar lo siguiente:&lt;/p&gt;

&lt;p&gt;1.- Ejecutar: &lt;strong&gt;&lt;code&gt;npm login&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
2.- Obtener el token que se ha creado&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Este token se genera automáticamente, se encuentra en el archivo .npmrc ubicado en el directorio $HOME &lt;br&gt;&lt;br&gt; En Windows es: C:/Users/ y en Linux, si soy sincero, no lo recuerdo y no quiero obtener la respuesta de google; quiero reforzar un poco la memoria. Pero puedes obtener la ruta del directorio con $HOME. &lt;br&gt;&lt;br&gt; El token es la cadena de texto dentro de las comillas después de &lt;strong&gt;&lt;em&gt;:authToken=&lt;/em&gt;&lt;/strong&gt;, este a su vez deberá corresponder de la dirección del registro a la cual está asignada.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;3.- Volver a ejecutar el login pero agregando el token al final de la siguiente forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login &lt;span class="nt"&gt;--regsitry&lt;/span&gt; &amp;lt;dirección-del-registro&amp;gt;/:_authToken&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.- Volver a tratar de instalar las dependencias&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalación
&lt;/h2&gt;

&lt;p&gt;&lt;a id="installation"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cuando se hace uso de los registros que proveen servicios como Gitlab, se requiere un token (con los permisos para acceder al registro), puedes encontrar más información en &lt;a href="https://docs.gitlab.com/ee/user/packages/package_registry/"&gt;Gitlab | Package Registry&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: El token para la instalación de dependencias &lt;strong&gt;no&lt;/strong&gt; es el mismo que el token que se requiere para hacer el login&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Es común que en los proyectos se llegue a ver un archivo .npmrc dentro del proyecto, con la configuración para poder conocer los scopes (alcances) de las dependencias que el proyecto requiere&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: Es IMPORTANTE que NUNCA, NUNCA, NUNCA se agreguen tokens o keys dentro de estos, por cuestiones de seguridad, es más conveniente que se usen variables de entorno para asignarlos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como se puede ver en &lt;a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html#authenticate-with-a-ci-job-token"&gt;Gitlab&lt;/a&gt;, hay varias formas de identificar a los módulos/dependencias de un proyecto. En la documentación se centra en el CI/CD, pero se puede realizar a nivel instancia, como se expondrá en este articulo.&lt;/p&gt;

&lt;p&gt;Primero en el proyecto, debe de existir el fichero .npmrc, en el que se deberá identificar al registro del cual se obtendrán las dependencias, como por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;@foo:registry&lt;span class="o"&gt;=&lt;/span&gt;https://gitlab.example.com/api/v4/packages/npm/
//gitlab.example.com/api/v4/packages/npm/:_authToken&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;NOTA: Es importante que se mantenga la sección &lt;strong&gt;&lt;em&gt;${TOKEN}&lt;/em&gt;&lt;/strong&gt;, esto; tomará el valor de la variable que se indica entre las llaves&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ahora, deberás generar un &lt;a href="https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html"&gt;token&lt;/a&gt;, como ya se mencionó este token deberá tener permisos para poder acceder al registro.&lt;/p&gt;

&lt;p&gt;Este token puede ser usado como variable del entorno, si se ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto funcionará siempre en entornos *NIX, en sistemas Windows, en lo personal uso Git Bash pero desafortunadamente con esta ultima opción; esto no persiste en el entorno. En entornos Windows con sub kernel de linux, desconozco si funciona.&lt;/p&gt;

&lt;p&gt;Hecho esto, ya se podrán instalar las dependencias desde los registros privados.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
