2017-12-16 13:29:58 +01:00
---
id: uplinks
2018-02-16 19:32:53 +01:00
title: "Uplinks"
2017-12-16 13:29:58 +01:00
---
2018-03-04 21:33:57 +01:00
Un * uplink* es un enlace a un registro externo que provee acceso a paquetes externos.
2017-12-16 13:29:58 +01:00
2018-01-21 00:04:36 +01:00
![Uplinks ](/img/uplinks.png )
2018-03-04 21:33:57 +01:00
### Uso
2017-12-16 13:29:58 +01:00
```yaml
uplinks:
npmjs:
url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
server3:
url: http://mirror2.local.net:9000/
baduplink:
url: http://localhost:55666/
```
2018-03-04 21:33:57 +01:00
### Configuración
2017-12-16 13:29:58 +01:00
2018-03-05 07:13:01 +01:00
Puedes definir múltiples uplinks y cada uno de ellos debe tener un nombre único (key). Pueden tener las siguientes propiedades:
2018-06-19 19:18:49 +02:00
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción | Por Defecto |
| ------------ | ------- | --------- | ------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| url | string | Yes | https://registry.npmjs.org/ | all | El dominio del registro | npmjs |
| ca | string | No | ~./ssl/client.crt' | all | Ubicación del certificado SSL | Desactivado |
| timeout | string | No | 100ms | all | timeout por petición | 30s |
| maxage | string | No | 10m | all | limite máximo de fallos de cada petición | 2m |
| fail_timeout | string | No | 10m | all | define el tiempo máximo cuando una petición falla | 5m |
| max_fails | number | No | 2 | all | límite máximo de fallos | 2 |
| cache | boolean | No | [true,false] | >= 2.1 | cache all remote tarballs in storage | true |
| auth | list | No | [ver abajo ](uplinks.md#auth-property ) | >= 2.5 | asigna el encabezado 'Autorización' [más información ](http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules ) | desactivado |
| headers | list | No | ]] | all | listado de encabezados por uplink | desactivado |
| strict_ssl | boolean | No | [true,false] | >= 3.0 | Es verdadero, requiere que el certificado SSL sea válido. | true |
2018-05-26 18:59:07 +02:00
#### Auth property
2018-05-18 19:59:04 +02:00
The `auth` property allows you to use an auth token with an uplink. Using the default environment variable:
```yaml
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: true # defaults to `process.env['NPM_TOKEN']`
```
2018-06-19 19:18:49 +02:00
o a través de una variable de entorno específica:
2018-05-18 19:59:04 +02:00
```yaml
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: FOO_TOKEN
```
`token_env: FOO_TOKEN` internally will use `process.env['FOO_TOKEN']`
2018-06-19 19:18:49 +02:00
o al especificar directamente un token:
2018-05-18 19:59:04 +02:00
```yaml
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token: "token"
```
2018-06-19 19:18:49 +02:00
> Nota: `token` tiene prioridad sobre `token_env`
2018-04-02 08:29:59 +02:00
2018-03-05 07:13:01 +01:00
### Debes saber
2018-05-18 19:59:04 +02:00
* Verdaccio no usa Basic Authentication desde la versión `v2.3.0` . Todos los tokens generados por verdaccio están basados en JWT ([JSON Web Token](https://jwt.io/))
2018-05-06 09:12:13 +02:00
* Uplinks must be registries compatible with the `npm` endpoints. Eg: *verdaccio* , `sinopia@1.4.0` , *npmjs registry* , *yarn registry* , *JFrog* , *Nexus* and more.
2018-06-19 19:18:49 +02:00
* Definiendo el `caché` como falso te ayudará a ahorrar espacio en tu disco duro. This will avoid store `tarballs` but [it will keep metadata in folders ](https://github.com/verdaccio/verdaccio/issues/391 ).
* Excederse con múltiples uplinks puede ralentizar la búsqueda de tus paquetes debido a que cada solicitud que un cliente npm realiza, verdaccio hace una llamada por cada uplink.
2018-05-06 09:12:13 +02:00
* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units ](http://nginx.org/en/docs/syntax.html )