Defined Type: nexus::resource::repository::npm::proxy

Defined in:
manifests/resource/repository/npm/proxy.pp

Summary

Resource to manage npm proxy repository

Overview

Examples:

nexus::repository::npm::proxy { 'npm-npmjs.org':
   proxy_remote_url => 'https://registry.npmjs.org',
}

Parameters:

  • proxy_remote_url (Stdlib::HTTPSUrl)

    NPM repository url like registry.npmjs.org.

  • ensure (Enum['present', 'absent']) (defaults to: 'present')

    Define if the resource should be created/present or deleted/absent.

  • npm_remove_non_cataloged (Boolean) (defaults to: false)

    Remove non-cataloged versions from the npm package metadata. (Requires IQ: Audit and Quarantine)

  • npm_remove_quarantined (Boolean) (defaults to: false)

    Remove quarantined versions from the npm package metadata. (Requires IQ: Audit and Quarantine)

  • http_client_auto_block (Boolean) (defaults to: true)

    Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.

  • http_client_blocked (Boolean) (defaults to: false)

    Block outbound connections on the repository.

  • negative_cache_enabled (Boolean) (defaults to: true)

    Cache responses for content not present in the proxied repository.

  • negative_cache_time_to_live (Integer) (defaults to: 1440)

    How long to cache the fact that a file was not found in the repository (in minutes).

  • online (Boolean) (defaults to: true)

    Enable this repository in nexus repository manager that it can be used.

  • proxy_content_max_age (Integer) (defaults to: 1440)

    Max age of content (packages).

  • proxy_metadata_max_age (Integer) (defaults to: 1440)

    Max age of the repository metadata.

  • storage_blob_store_name (String[1]) (defaults to: $title)

    The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository.

  • storage_strict_content_type_validation (Boolean) (defaults to: true)

    Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format.

  • storage_write_policy (Enum['ALLOW','ALLOW_ONCE','DENY']) (defaults to: 'ALLOW')

    Controls if deployments of and updates to artifacts are allowed.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'manifests/resource/repository/npm/proxy.pp', line 38

define nexus::resource::repository::npm::proxy (
  Stdlib::HTTPSUrl $proxy_remote_url,
  Enum['present', 'absent'] $ensure = 'present',
  Boolean $npm_remove_non_cataloged = false,
  Boolean $npm_remove_quarantined = false,
  Boolean $http_client_blocked = false,
  Boolean $http_client_auto_block = true,
  Boolean $negative_cache_enabled = true,
  Integer $negative_cache_time_to_live = 1440,
  Boolean $online = true,
  Integer $proxy_content_max_age = 1440,
  Integer $proxy_metadata_max_age = 1440,
  String[1] $storage_blob_store_name = $title,
  Boolean $storage_strict_content_type_validation = true,
  Enum['ALLOW','ALLOW_ONCE','DENY'] $storage_write_policy = 'ALLOW',
) {
  nexus_repository { $title:
    ensure     => $ensure,
    format     => 'npm',
    type       => 'proxy',
    attributes => {
      'online'          => $online,
      'storage'         => {
        'blobStoreName'               => $storage_blob_store_name,
        'strictContentTypeValidation' => $storage_strict_content_type_validation,
        'writePolicy'                 => $storage_write_policy
      },
      'cleanup'         => undef,
      'proxy'           => {
        'remoteUrl'      => $proxy_remote_url,
        'contentMaxAge'  => $proxy_content_max_age,
        'metadataMaxAge' => $proxy_metadata_max_age,
      },
      'negativeCache'   => {
        'enabled'    => $negative_cache_enabled,
        'timeToLive' => $negative_cache_time_to_live
      },
      'httpClient'      => {
        'blocked'        => $http_client_blocked,
        'autoBlock'      => $http_client_auto_block,
        'connection'     => {
          'retries'                 => undef,
          'userAgentSuffix'         => undef,
          'timeout'                 => undef,
          'enableCircularRedirects' => false,
          'enableCookies'           => false,
          'useTrustStore'           => false
        },
        'authentication' => undef
      },
      'routingRuleName' => undef,
      'npm'             => {
        'removeNonCataloged' => $npm_remove_non_cataloged,
        'removeQuarantined'  => $npm_remove_quarantined,
      },
    },
  }
}