newrelic 7.1.2 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/NEWS.md +97 -0
  2. package/THIRD_PARTY_NOTICES.md +33 -2
  3. package/bin/test-naming-rules.js +4 -4
  4. package/index.js +4 -2
  5. package/lib/agent.js +4 -0
  6. package/lib/collector/api.js +45 -18
  7. package/lib/collector/facts.js +22 -8
  8. package/lib/collector/http-agents.js +20 -7
  9. package/lib/collector/remote-method.js +32 -9
  10. package/lib/config/index.js +48 -39
  11. package/lib/feature_flags.js +6 -2
  12. package/lib/grpc/connection.js +39 -15
  13. package/lib/instrumentation/core/async_hooks.js +101 -14
  14. package/lib/instrumentation/core/http.js +5 -0
  15. package/lib/instrumentation/core/timers.js +6 -1
  16. package/lib/metrics/names.js +7 -1
  17. package/lib/shim/shim.js +6 -1
  18. package/lib/spans/create-span-event-aggregator.js +1 -0
  19. package/lib/spans/span-event.js +6 -3
  20. package/lib/spans/streaming-span-event.js +6 -3
  21. package/lib/transaction/index.js +36 -0
  22. package/newrelic.js +1 -1
  23. package/package.json +19 -7
  24. package/CONTRIBUTING.md +0 -135
  25. package/Migration Guide.md +0 -271
  26. package/ROADMAP_Node.md +0 -24
  27. package/SECURITY.md +0 -5
  28. package/THIRD_PARTY_NOTICES_ADDENDUM.md +0 -213
  29. package/bin/ca-gen.js +0 -91
  30. package/bin/cassandra-setup.sh +0 -11
  31. package/bin/check-workflow-run.js +0 -74
  32. package/bin/clean.sh +0 -18
  33. package/bin/compare-bench-results.js +0 -172
  34. package/bin/create-release.js +0 -74
  35. package/bin/docker-env-vars.sh +0 -15
  36. package/bin/docker-services.sh +0 -49
  37. package/bin/generate-release-notes.js +0 -126
  38. package/bin/github.js +0 -119
  39. package/bin/publish-docs.sh +0 -16
  40. package/bin/run-bench.js +0 -137
  41. package/bin/run-versioned-tests.sh +0 -32
  42. package/bin/smoke.sh +0 -8
  43. package/bin/ssl.sh +0 -87
  44. package/bin/travis-install-gcc5.sh +0 -13
  45. package/bin/travis-install-mongo.sh +0 -16
  46. package/bin/travis-node.sh +0 -57
  47. package/bin/travis-setup.sh +0 -52
  48. package/bin/update-ca-bundle.sh +0 -20
  49. package/bin/update-cats.sh +0 -8
  50. package/bin/update-changelog-version.js +0 -68
  51. package/jsdoc-conf.json +0 -18
  52. package/third_party_manifest.json +0 -619
@@ -1,271 +0,0 @@
1
-
2
- # Migration Guide
3
- This guide is intended to help with upgrading major versions of the Node Agent.
4
- This information can also be found on [our documentation website][upgrade-doc].
5
-
6
- ## Upgrading to Agent v5
7
-
8
- ### Breaking Changes
9
-
10
- **Removed deprecated API methods**: The following API methods had been marked as
11
- deprecated since agent v2, and have now been fully removed from the codebase:
12
-
13
- * `newrelic.addCustomParameter()`
14
-
15
- Replace with `newrelic.addCustomAttribute()`.
16
-
17
- * `newrelic.addCustomParameters()`
18
-
19
- Replace with `newrelic.addCustomAttributes()`.
20
-
21
- * `newrelic.createWebTransaction()`
22
-
23
- Replace with `newrelic.startWebTransaction()` and `newrelic.getTransaction()`.
24
-
25
- * `newrelic.createBackgroundTransaction()`
26
-
27
- Replace with `newrelic.startBackgroundTransaction()` and `newrelic.getTransaction()`.
28
-
29
- * `newrelic.createTracer()`
30
-
31
- Replace with `newrelic.startSegment()`.
32
-
33
- **Removed `ignore_server_configuration` setting**: This setting was only implemented
34
- by the Node agent, so removing it improves parity with other language agents.
35
-
36
- **Removed `node-cassandra-cql` instrumentation**: This [library][node-cassandra-cql]
37
- has not been updated in 5 years, and has since been superseded by
38
- [cassandra-driver](https://www.npmjs.com/package/cassandra-driver), which is
39
- supported by the agent.
40
-
41
- **Removed deprecated configuration settings**: The following configuration
42
- settings have been deprecated since agent v3, and have now been removed from the
43
- codebase:
44
-
45
- * `capture_params`
46
-
47
- Replaced with `attributes.enabled`. By default, request attributes are not
48
- sent to New Relic. Set `attributes.enabled: true` to include agent-defined or
49
- custom attributes in traces.
50
-
51
- * `ignored_params`
52
-
53
- Replaced with `attributes.exclude`. Add any request attribute keys to the
54
- `attributes.exclude` list. Now, instead of having to be an exact match,
55
- wildcards (`*`) may be appended to each item for broader filtering.
56
-
57
- **Updated custom metric naming**: Custom metrics are now prefixed with `Custom/`.
58
- Existing insights queries may need to be addressed moving forward.
59
-
60
- ### Node Version Support
61
-
62
- The agent now only supports Node version 6 and above, which brings it up to date
63
- with Node's [LTS][node-lts-schedule] schedule. Customers running Node 4.x or 5.x
64
- will need to upgrade to a supported version of Node or remain on the v4 agent.
65
-
66
- ### Released Feature Flags
67
- * `custom_instrumentation`: This feature is no longer configurable.
68
- * `custom_metrics`: This feature is no longer configurable.
69
- * `synthetics`: This feature is no longer configurable.
70
- * `native_metrics`: This feature is now controlled by the
71
- `plugins.native_metrics.enabled` configuration value.
72
-
73
- --------------------------------------------------------------------------------
74
-
75
- ## Upgrading to Agent v4
76
-
77
- ### Breaking Changes
78
-
79
- **Upgraded https-proxy-agent from v0 to v2**: This dependency has been updated
80
- due to a security issue in the version of `https-proxy-agent` the New Relic Node.js
81
- agent used. `https-proxy` v2 is incompatible with node v0.10 and v0.12,
82
- requiring deprecation of those versions for the agent. There is no required
83
- action to migrate from v3 to v4 of New Relic's Node.js agent.
84
-
85
- ### Node Version Support
86
- The earliest version of Node supported by the v4 agent is 4. Node 0.10 and 0.12,
87
- which have not been updated since February of 2017, are not supported by v4.
88
- Customers running Node 0.10 or 0.12 will need to upgrade to a supported version
89
- of Node or remain on the v3 agent.
90
-
91
- [Node 4 is also no longer receiving updates][node-lts-schedule], but we will
92
- continue to support this version of Node for the time being. We highly recommend
93
- moving to a newer version of Node as soon as possible. The next major version of
94
- the New Relic Node Agent will likely remove support for it.
95
-
96
- --------------------------------------------------------------------------------
97
-
98
- ## Upgrading to Agent v3
99
-
100
- ### Breaking Changes
101
-
102
- **Removed SSL configuration**: The agent will always connect to New Relic
103
- servers using TLS to encrypt communications. The `ssl` configuration value and
104
- `NEW_RELIC_USE_SSL` environment value are ignored. If set to any value other
105
- than `true`, a warning is logged and the value is ignored.
106
-
107
- **Request parameters now prefixed with `request.parameters.`**: Any request
108
- parameters, such as route (`/user/:userId`) or query (`/user?userId=123`)
109
- parameters will now be prefixed with `request.parameters.` when collected. For
110
- example, the route parameter from `/user/:userId` would be collected as
111
- `request.parameters.userId`.
112
-
113
- Any Insights dashboards, Alerts, or other NRQL queries using these attributes
114
- must be updated to look for the new attributes instead.
115
-
116
- ### Released Feature Flags
117
-
118
- * `send_request_uri_attribute`: This feature is no longer configurable.
119
-
120
- --------------------------------------------------------------------------------
121
-
122
- ## Upgrading to Agent v2
123
-
124
- ### Breaking Changes
125
-
126
- **Reversed naming and ignore rules**: Previously, rules defined in the config
127
- properties `rules.name` and `rules.ignore` were applied in reverse order, the
128
- first rule in the list was applied last. Agent v2 now applies rules in the
129
- order they are defined, so the first rule in the list is applied first.
130
-
131
- Users of naming rules in the v1 agent will need to reverse the order of their
132
- rules in the configuration if they're noticing any issues.
133
-
134
- **De-duplicated HTTP request transactions**: The v1 agent starts a new
135
- transaction for each _listener_ on an HTTP server's `request` event. In
136
- applications with multiple listeners on the `request` event this would result
137
- in extraneous transactions being created that almost always did not get named
138
- correctly. In v2 the agent only creates a single transaction for each `request`
139
- event emitted.
140
-
141
- Any users who utilized multiple `request` event listeners and added a call to
142
- `newrelic.ignoreTransaction()` to remove the extra transactions should remove
143
- those calls.
144
-
145
- **Stopped swallowing outbound request errors**: In v1 the Node Agent swallows
146
- unhandled `error` events emitted by outbound HTTP request objects. Agent v2
147
- removed this behavior in favor of not changing normal Node execution, meaning
148
- the `error` event will always be emitted.
149
-
150
- If you are making outbound requests and currently do not listen for the `error`
151
- event, add a listener and handle the error as appropriate for your application.
152
-
153
- ### Updated configuration options
154
-
155
- In `newrelic.js`, edit the configuration properties you use for compatibility
156
- with the latest versions:
157
-
158
- * `capture_params`
159
-
160
- Replaced with `attributes.enabled`. By default, request attributes are not
161
- sent to New Relic. Set `attributes.enabled`: true to include agent-defined or
162
- custom attributes in traces.
163
-
164
- * `ignored_params`
165
-
166
- Replaced with `attributes.exclude`. Add any request attribute keys to the
167
- `attributes.exclude` list. Now, instead of having to be an exact match,
168
- wildcards (`*`) may be appended to each item for broader filtering.
169
-
170
- **NOTE**: The new properties also have overrides for specific destinations
171
- (`transaction_tracer`, `transaction_events`, `error_collector`, and
172
- `browser_monitoring`). For example, setting
173
- `transaction_tracer.attributes.enabled: false`, would restrict attributes from
174
- being collected in transaction traces, while still allowing them for all others,
175
- assuming the root `attributes.enabled` is `true`. Please see
176
- [Node.js agent configuration](https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration)
177
- for more details.
178
-
179
- ### Deprecated API Methods
180
- These methods have been marked as deprecated in Agent v2 and will be removed in
181
- v3.
182
-
183
- * `newrelic.createWebTransaction()`
184
-
185
- Replace with `newrelic.startWebTransaction()` and `newrelic.getTransaction()`.
186
-
187
- * `newrelic.createBackgroundTransaction()`
188
-
189
- Replace with `newrelic.startBackgroundTransaction()` and `newrelic.getTransaction()`.
190
-
191
- * `newrelic.addCustomParameter()`
192
-
193
- Replace with `newrelic.addCustomAttribute()`.
194
-
195
- * `newrelic.addCustomParameters()`
196
-
197
- Replace with `newrelic.addCustomAttributes()`.
198
-
199
- ### New API Methods
200
-
201
- * [`newrelic.getTransaction()`](https://newrelic.github.io/node-newrelic/docs/API.html#getTransaction)
202
-
203
- This method gets a reference to the currently running transaction. It should
204
- be used in conjunction with `newrelic.startWebTransaction`,
205
- `newrelic.startBackgroundTransaction`, or with callback-based message
206
- consumer services. See our [Trouble Shooting][messaging-troubleshooting-doc]
207
- documentation for more information on its usage.
208
-
209
- * [`newrelic.startWebTransaction()`](https://newrelic.github.io/node-newrelic/docs/API.html#startWebTransaction)
210
- [`newrelic.startBackgroundTransaction()`](https://newrelic.github.io/node-newrelic/docs/API.html#startBackgroundTransaction)
211
-
212
- These new API methods replace the older `create*Transaction` methods. They
213
- are easier to use and seamlessly work with promises. Note that unlike the old
214
- method, the provided callback is invoked immediately.
215
-
216
- * [`newrelic.instrument()`](https://newrelic.github.io/node-newrelic/docs/API.html#instrument)
217
- [`newrelic.instrumentDatastore()`](https://newrelic.github.io/node-newrelic/docs/API.html#instrumentDatastore)
218
- [`newrelic.instrumentWebframework()`](https://newrelic.github.io/node-newrelic/docs/API.html#instrumentWebframework)
219
- [`newrelic.instrumentMessages()`](https://newrelic.github.io/node-newrelic/docs/API.html#instrumentMessages)
220
-
221
- These methods can be used to add custom instrumentation for 3rd party modules,
222
- including those already instrumented by the Node Agent. See our
223
- [instrumentation tutorials][instrumentation-tutorial] for more information
224
- on using these methods.
225
-
226
- * `newrelic.addCustomAttribute()`
227
-
228
- Use this method to add a custom trace attribute.
229
-
230
- * `newrelic.addCustomAttributes()`
231
-
232
- Use this method to add multiple custom trace attributes.
233
-
234
- ### Node Version Support
235
- The earliest version of Node supported by the v2 agent is 0.10. Node 0.8, which
236
- has not been updated since July of 2014, is not supported by v2. Customers
237
- running Node 0.8 will need to upgrade to a supported version of Node or remain
238
- on the v1 agent. [Node 0.10 is also no longer receiving updates][node-lts-schedule],
239
- but we will continue to support this version of Node for the time being. We
240
- highly recommend moving to a newer version of Node as soon as possible. The
241
- next major version of the New Relic Node Agent will likely remove support for
242
- it.
243
-
244
- ### npm Version Support
245
- The agent now requires npm version 2.0.0 or higher. This version of npm comes
246
- packaged with Node 0.10.44 or higher. If you are using an earlier version of
247
- Node 0.10 you will need to first install npm 2.0.0 or higher or upgrade to a
248
- newer version of Node. Version 2 of npm can be installed with:
249
-
250
- ```sh
251
- $ npm install --global npm@2
252
- ```
253
-
254
- ### Released Feature Flags
255
- * `express_segments`: This feature is no longer configurable.
256
- * `cat`: This feature is now controlled by the `cross_application_tracer.enabled`
257
- configuration value.
258
-
259
- ### New Framework Minimum Versions
260
-
261
- | Module | Old Minimum | New Minimum |
262
- |---------|-------------|-------------|
263
- | express | 2.0.0 | 4.6.0 |
264
- | mysql | 0.9.0 | 2.0.0 |
265
-
266
-
267
- [upgrade-doc]: https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/upgrade-node-agent-versions
268
- [messaging-troubleshooting-doc]: https://docs.newrelic.com/docs/agents/nodejs-agent/troubleshooting/troubleshoot-message-consumers
269
- [instrumentation-tutorial]: https://newrelic.github.io/node-newrelic/docs/tutorial-Instrumentation-Basics.html
270
- [node-lts-schedule]: https://github.com/nodejs/LTS/tree/2b4253#lts-schedule1
271
- [node-cassandra-cql]: https://www.npmjs.com/package/node-cassandra-cql
package/ROADMAP_Node.md DELETED
@@ -1,24 +0,0 @@
1
- # Node Agent Roadmap
2
-
3
- ## Product Vision
4
- The goal of the Node agent is to provide complete visibility into the health of your service. The agent provides metrics about the runtime health of your service and the process it runs in, and traces that show how specific requests are performing. It also provides information about the environment in which it is running, so you can identify issues with specific hosts, regions, deployments, and other facets.
5
-
6
- New Relic is moving toward OpenTelemetry. OpenTelemetry is a unified standard for service instrumentation. You will soon see an updated version of the agent that uses the OpenTelemetry SDK and [auto-]instrumentation as its foundation. OpenTelemetry will include a broad set of high-quality community-contributed instrumentation and a powerful vendor-neutral API for adding your own instrumentation.
7
-
8
-
9
- ## Roadmap
10
- ### Description
11
- This roadmap project is broken down into the following sections:
12
-
13
- - **Now**:
14
- - This section contains features that are currently in progress.
15
- - **Next**:
16
- - This section contains work planned within the next three months. These features may still be deprioritized and moved to Future.
17
- - **Future**:
18
- - This section is for ideas for future work that is aligned with the product vision and possible opportunities for community contribution. It contains a list of features that anyone can implement. No guarantees can be provided on if or when these features will be completed.
19
-
20
-
21
- **The roadmap project is found [here](https://github.com/orgs/newrelic/projects/11)**
22
-
23
- #### Disclaimers
24
- > This roadmap is subject to change at any time. Future items should not be considered commitments.
package/SECURITY.md DELETED
@@ -1,5 +0,0 @@
1
- # Reporting Security Vulnerabilities
2
-
3
- New Relic is committed to the security of our customers and your data. We believe that engaging with security researchers through our coordinated disclosure program is an important means to achieve our security goals.
4
-
5
- If you believe you have found a security vulnerability in one of our products or websites, we welcome and greatly appreciate you reporting it to New Relic's coordinated disclosure program. Please see our [website for more information on how to report a vulnerability](https://docs.newrelic.com/docs/security/new-relic-security/data-privacy/reporting-security-vulnerabilities).
@@ -1,213 +0,0 @@
1
- # Third Party License Addendum
2
-
3
- Developers Note: The following license could not be autogenerated by the New Relic OSS cli tool and needs to be manually copied to the `THIRD_PARTY_LICENSE.md` after running the tool.
4
-
5
- ## Footer
6
-
7
- Portions copyright Node.js contributors. Depending on your existing libraries and package management settings,
8
- your systems may call externally maintained libraries in addition to those listed above.
9
- See [here](https://nodejs.org/en/docs/meta/topics/dependencies/) and [here](https://github.com/nodejs/node/blob/v4.3.1/LICENSE)
10
- for additional details regarding externally maintained libraries and certain related licenses and notices.”
11
-
12
- ## ADDITIONAL LICENSE(S)
13
-
14
- ---
15
-
16
- <!-- licence -->
17
- ### Symantec
18
-
19
- This product includes certificates from Symantec which are used under the
20
- following license (https://docs.broadcom.com/doc/root-certificate-license-agreement-en):
21
-
22
- ```
23
- ROOT CERTIFICATE LICENSE AGREEMENT
24
- SYMANTEC CORPORATION AND/OR ITS AFFILIATES (“SYMANTEC”) IS WILLING TO PROVIDE THE
25
- ROOT CERTIFICATES TO YOU AS THE INDIVIDUAL, THE COMPANY, OR THE LEGAL ENTITY THAT
26
- WILL BE UTILIZING THE ROOT CERTIFICATES (REFERENCED BELOW AS “YOU” OR “YOUR”)
27
- ONLY ON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS OF THIS AGREEMENT
28
- (“AGREEMENT”). READ THE TERMS AND CONDITIONS OF THIS AGREEMENT CAREFULLY
29
- BEFORE USING THE ROOT CERTIFICATES. THIS IS A LEGAL AND ENFORCEABLE CONTRACT
30
- BETWEEN YOU AND SYMANTEC. BY USING THE ROOT CERTIFICATES, YOU AGREE TO THE
31
- TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS AND
32
- CONDITIONS, MAKE NO FURTHER USE OF THE ROOT CERTIFICATES. UNLESS OTHERWISE
33
- DEFINED HEREIN, CAPITALIZED TERMS WILL HAVE THE MEANING GIVEN IN THE “DEFINITIONS”
34
- SECTION OF THIS AGREEMENT AND SUCH CAPITALIZED TERMS MAY BE USED IN THE
35
- SINGULAR OR IN THE PLURAL, AS THE CONTEXT REQUIRES.
36
-
37
- ROOT CERTIFICATE TERMS AND CONDITIONS
38
- 1. DEFINITIONS.
39
- "Certificate" means an electronic file that, at least, states a name or identifies the issuing Certificate
40
- Authority, identifies the subscriber, contains the subscriber's public key, identifies the Certificate's
41
- operational period, contains a Certificate serial number, and contains a digital signature of the issuing
42
- Certificate Authority.
43
- “Certificate Authority” or “CA” means a person or entity authorized to issue, suspend, or revoke
44
- Certificates.
45
- “Intermediate CA” means a CA Certificate signed by a Root Certificate Intermediate that issues
46
- Certificates either to end-entities or other Certificate Authorities, but not to both.
47
- "Products" means all versions of Your product or service with which the Root Certificates are incorporated
48
- (including successor products and services or any major or minor upgrades thereto).
49
- "Root Certificate" means a self-signed Certificate issued by a top-level Certificate Authority to itself, which
50
- includes such Certificate Authority's public key. The Root Certificates and Root Certificate files to be
51
- provided by Company to Customer pursuant to this Agreement are available for download at
52
- https://www.verisign.com/support/roots.html, https://www.thawte.com/roots/index.html or
53
- https://www.geotrust.com/resources/rootcertificates/index.html.
54
- 2. LICENSE. During the term of this Agreement, Symantec grants You a royalty-free, non-exclusive, nontransferable license to (a) use the Root Certificate for the purposes of testing (without the right to modify);
55
- (b) make copies of Root Certificates only in order to embed and incorporate them, unmodified and in full,
56
- as roots in Your Products; (c) distribute the Root Certificates as embedded and incorporated in such
57
- Products; and (d) use the relevant logos and trademarks of Symantec in Your marketing materials,
58
- advertisements, product data sheets, product packaging and websites solely conjunction with the
59
- distribution of the Root Certificates in accordance with Symantec’s published guidelines for such usage.
60
- You shall not have the right to further distribute the Root Certificates other than as described herein
61
- without an additional license grant, in a separate writing, from Symantec.
62
- 3. RESTRICTIONS. You may not: (a) modify or create any derivative works of Root Certificates; (b)
63
- assign, sublicense, sell, rent, or lease Symantec's root keys or Root Certificates; (c) use such Root
64
- Certificates except as expressly permitted under this Agreement; (d) remove or alter any trademark, logo,
65
- copyright, or other proprietary notices, legends, symbols, or labels provided in the Root Certificates; or (e)
66
- certify, or cause a third party to certify, the public key contained in the Root Certificates by issuing or
67
- creating a Certificate containing such public key.
68
- 4. CUSTOMER’S OBLIGATIONS.
69
- 4.1. During the term of this Agreement, You shall use commercially reasonable efforts regularly check the
70
- applicable Symantec URL for updates to the Root Certificates and update Root Certificates embedded
71
- into Your Products with the most currently available Root Certificates, unmodified and in full, or as a patch
72
- or update. If Symantec updates its Root Certificates,, You shall use commercially reasonable efforts to (i)
73
- discontinue all copying and use of the Root Certificates which have been replaced, and (ii) to use
74
- Symantec’s then-current Root Certificates. Any updates to the Root Certificates are incorporated into and
75
- subject to the terms of this Agreement.
76
- 4.2. You shall appoint at least one (1) individual as the administrative contact designated to address any
77
- Root Certificate issues and shall provide the contact information for such individual to dl-tssroot@symantec.com.
78
- 4.3 In the event You become aware of or suspect any event that diminishes the integrity of Symantec's
79
- data or public key system ("Compromise"), You shall immediately notify Symantec at dl-tss-
80
- root@symantec.com of such Compromise, and take reasonable steps to assist and cooperate with
81
- Symantec to remedy the Compromise.
82
- 4.4 In the event that Symantec modifies these terms of use for the Root certificates for all end users,
83
- Symantec shall post the modified terms for the Agreement on the applicable URL and may post the
84
- modified terms on the Symantec corporate website. You shall be responsible for regularly checking the
85
- applicable URL for modifications to this Agreement. Such modifications shall be effective and binding on
86
- Customer within thirty (30) days of Symantec’s posting such modifications to its website. If you do not
87
- accept the modified Agreement, discontinue use of the Root Certificates and this Agreement will be
88
- deemed as terminated.
89
- 5. CONFIDENTIALITY.
90
- 5.1. Confidential Information. "Confidential Information" means the root private keys corresponding to the
91
- public key in a Root Certificate, and any confidential, trade secret, or other proprietary information
92
- disclosed by a party to the other party under this Agreement, except for Information that: (i) is public
93
- knowledge at the time of disclosure, (ii) was known by the receiving party before disclosure by the
94
- disclosing party, or becomes public knowledge or otherwise known to the receiving party after such
95
- disclosure, other than by breach of a confidentiality obligation, or (iii) is independently developed by the
96
- receiving party by persons without access to Confidential Information of the disclosing party.
97
- 5.2. Protection of Confidential Information. The receiving party shall: (i) not disclose the Confidential
98
- information to any third party, (ii) not use the Confidential Information except for purposes of performing
99
- this Agreement, and (iii) take steps consistent with its protection of its own confidential and proprietary
100
- information (but in no event exercise less than reasonable care) to prevent unauthorized disclosure of the
101
- Confidential Information. Each party acknowledges that breach of this Section 5 may cause irreparable
102
- harm to the disclosing party entitling the disclosing party to injunctive relief, among other remedies.
103
- 5.3. Mutual Cooperation. Each party will notify and cooperate with the other party in enforcing the
104
- disclosing party's rights if such party becomes aware of a threatened or actual violation of the
105
- confidentiality requirements of this Section 5. Each party shall have confidentiality agreements with its
106
- employees, agents or independent contractors sufficient in scope to fulfill its confidentiality obligations
107
- under this Agreement.
108
- 6. INTELLECTUAL PROPERTY. You acknowledge that Symantec, including its wholly owned
109
- subsidiaries, retains all intellectual property rights and title (including any patent, copyright, trademark,
110
- trade secret, and other rights) in and to the Root Certificates, the public and private keys corresponding to
111
- such Root Certificates ("Symantec Intellectual Property"). This Agreement does not give You any
112
- intellectual property rights in the Symantec intellectual property except for the license granted in Section
113
- 2. To the extent You use Symantec's trademarks or logos as permitted herein, You agree to comply with
114
- all usage requirements set forth in the then current version of Symantec's Logo and Trademark Usage
115
- Guide (http://www.symantec.com/about/profile/policies/trademarks.jsp) and any other guides and
116
- procedures of Symantec.
117
- 7. NO WARRANTIES. THE ROOT CERTIFICATES, INCLUDING UPDATES, ARE PROVIDED "AS IS"
118
- WITHOUT ANY WARRANTY WHATSOEVER. SYMANTEC HEREBY DISCLAIMS ALL WARRANTIES,
119
- WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING WITHOUT LIMITATION, ANY
120
- IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
121
- NONINFRINGEMENT OF THIRD PARTY RIGHTS.
122
- 8. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY WILL
123
- SYMANTEC OR ITS LICENSORS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY
124
- CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR EXEMPLARY DAMAGES, WHETHER
125
- FORESEEABLE OR UNFORESEEABLE, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE
126
- POSSIBILITY OF SUCH DAMAGES. YOU WILL TAKE REASONABLE MEASURES TO INSURE THAT
127
- THE TERMS AND CONDITIONS SET FORTH IN THE PRECEDING SENTENCE OF THIS SECTION 8
128
- ARE INCORPORATED INTO ANY AGREEMENT BETWEEN YOU AND YOUR CUSTOMERS OR
129
- LICENSEES. SYMANTEC SHALL NOT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY
130
- DAMAGES CAUSED BY YOUR OR A THIRD PARTY’S CONTINUED USE OF ANY OUTDATED
131
- ROOTS FOR WHICH AN UPDATED VERSION IS MADE AVAILABLE BY SYMANTEC. FURTHER,
132
- UNDER NO CIRCUMSTANCES WILL SYMANTEC'S LIABILITY FOR ANY ACTION OR CLAIM EXCEED
133
- USD$1,000, REGARDLESS OF WHETHER SUCH ACTION OR CLAIM IS BASED IN CONTRACT,
134
- TORT, STRICT LIABILITY, OR OTHERWISE.
135
- 9. TERM AND TERMINATION.
136
- 9.1. Term. This Agreement shall become effective as of the earlier of, Your first use of the Root
137
- Certificates, and shall remain in effect until the earlier of (i) Your discontinued use of the Root Certificates;
138
- (ii) termination by either party under the terms of Section 9.2, below; or (iii) Symantec’s notice to You that
139
- Symantec is no longer providing Root Certificates for use.
140
- 9.2. Termination for Default/Insolvency. Either party shall be entitled to terminate this Agreement in the
141
- event of a failure by the other party to perform any of its material obligations under this Agreement if such
142
- breach is not cured within thirty (30) days after receipt of written notice thereof from the non-defaulting
143
- party or within forty-eight (48) hours after receipt of such written notice if a breach by You may
144
- compromise the security of the Symantec Trust Network or other system. This Agreement shall terminate
145
- upon the election of and notice from a party to the other if the other party is adjudged insolvent or
146
- bankrupt, or the institution of any proceedings by or against the other party seeking relief, reorganization,
147
- or arrangement under any laws relating to insolvency, or any assignment for the benefit of creditors, or
148
- the appointment of a receiver, liquidator, or trustee of any of the other party's property or assets, or the
149
- liquidation, dissolution, or winding up of the other party's business.
150
- 9.3. Effect of Expiration or Termination. Upon expiration or termination of this Agreement, except for a
151
- breach by You, You may continue to distribute the current version of Your Products which incorporate the
152
- Root Certificates. Any updates or upgrades thereto may not include the Root Certificates and You shall
153
- stop making copies of Root Certificates, shall stop including Root Certificates in Your Products, and shall
154
- stop using Symantec’s logos and trademarks. The provisions of Sections 3, 4.3, 5, 6, 7, 8, 9.3, and 10
155
- shall survive termination of this Agreement.
156
- 10. GENERAL.
157
- 10.1. Governing Laws. This Agreement and any disputes relating to the services provided hereunder shall
158
- be governed and interpreted according to each of the following laws, respectively, without regard to its
159
- conflicts of law provisions: (a) the laws of the State of California, if You are located in North America or
160
- Latin America; or (b) the law of England, if You are located in Europe, Middle East or Africa; or (c) the
161
- laws of Singapore, if You are located in Asia Pacific including Japan. The United Nations Convention on
162
- Contracts for the International Sale of Goods shall not apply to this Agreement.
163
- 10.2. Binding Upon Successors; Assignment. This Agreement shall be binding upon, and inure to the
164
- benefit of, the successors, executors, heirs, representatives, administrators, and assigns of the parties
165
- hereto. Notwithstanding the foregoing, You may not assign Your rights or obligations under this
166
- Agreement without the prior written consent of Symantec. Any such purported assignment of this
167
- Agreement without obtaining written consent shall be void and of no effect.
168
- 10.3. Severability; Enforcement; No Waiver. The unenforceability of any provision or provisions of this
169
- Agreement shall not impair the enforceability of any other part of this Agreement. If any provision of this
170
- Agreement shall be deemed invalid or unenforceable, in whole or in part, this Agreement shall be deemed
171
- amended to delete or modify, as necessary, the invalid or unenforceable provision to render it valid,
172
- enforceable, and, insofar as possible, consistent with the original intent of the parties. The failure of a
173
- party, at any time or from time to time, to require performance of any obligations of the other party
174
- hereunder shall not be deemed a waiver and shall not affect its right to enforce any provision of this
175
- Agreement at a subsequent time.
176
- 10.4. Entire Agreement; Amendments; Waivers. This Agreement constitutes the entire understanding and
177
- agreement of the parties, whether written or oral, with respect to the subject matter hereof and supersede
178
- all prior and contemporaneous agreements or understandings between the parties. Any term or provision
179
- of this Agreement may be amended, and the observance of any term of this Agreement may be waived,
180
- only by writing signed by the parties to be bound thereby.
181
- 10.5. Compliance with Law, Export Requirements and Foreign Reshipment Liability. Each party shall
182
- comply with all applicable federal, state and local laws and regulations in connection with its performance
183
- under this Agreement. Services, including documentation, may include controlled technology or technical
184
- data (collectively “Controlled Technology”) that is subject to the U.S. Export Administration Regulations
185
- (EAR), and diversion contrary to U.S. law is prohibited. You agree to comply with all relevant laws
186
- including the U.S. EAR and the laws of any country from which Controlled Technology is exported. All
187
- Controlled Technology is prohibited for export or re-export to Cuba, North Korea, Iran, Sudan and Syria
188
- and to any country or its nationals subject to relevant embargo or sanction or to any entity or person for
189
- which an export license is required per any relevant restricted party list, without first obtaining a license.
190
- Furthermore, You hereby agree that You will not use or allow use of Controlled Technology in connection
191
- with chemical, biological, or nuclear weapons, or missiles, drones or space launch vehicles capable of
192
- delivering such weapons. Symantec shall have the right to suspend performance of any of its obligations
193
- under this Agreement, without any prior notice being required and without any liability to Customer, if You
194
- fail to comply with this provision.
195
- 10.6. Notices. You will make all notices, demands or requests to Symantec with respect to this Agreement
196
- in writing to the "Contact" address listed on the website from where you downloaded the Root Certificates,
197
- with a copy to: General Counsel – Legal Department, Symantec Corporation, 350 Ellis Street, Mountain
198
- View, California 94043, USA. Notices shall be effective on the date received (unless the notice specifies a
199
- later date) only if it is sent by a courier service that confirms delivery in writing or if sent by certified or
200
- registered mail, postage prepaid, return receipt requested. Symantec may post notices and updates
201
- regarding the Agreement or the Root Certificates at the URL provided to You for the Root Certificates.
202
- You shall be responsible for regularly checking the applicable URL for notices from Symantec regarding
203
- the Agreement or the Root Certificates. No notices, demands, or requests to Symantec with respect to
204
- this Agreement may be delivered by electronic mail. You shall immediately notify Symantec of any legal
205
- notices served on You that might affect Symantec, and shall promptly forward the original or a copy of
206
- such notice to Symantec.
207
- 10.7. Independent Parties. The relationship between You and Symantec is that of independent
208
- contractors. Neither party nor its employees, consultants, contractors, or agents are agents, employees,
209
- or joint venturers of the other party, nor do they have any authority to bind the other party by contract or
210
- otherwise to any obligation.
211
- Root Certificate License Agreement v3.0 (January 2014)
212
- ```
213
- <!-- licencestop -->
package/bin/ca-gen.js DELETED
@@ -1,91 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /*
4
- * Copyright 2020 New Relic Corporation. All rights reserved.
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
-
8
- 'use strict'
9
- /* eslint-disable no-console */
10
-
11
- const fs = require('fs')
12
- const path = require('path')
13
- const glob = require('glob')
14
-
15
- const CERT_PATH = path.join(__dirname, '..', '..', 'SSL_CA_cert_bundle', '*.pem')
16
-
17
- const OUTFILE =
18
- path.join(__dirname, '..', 'lib', 'collector', 'ssl', 'certificates')
19
-
20
- const HEADER =
21
- `/**\n
22
- * certificates.js - CA bundle for SSL communication with RPM.\n
23
- *\n
24
- * This file contains the X509 certificates used to communicate with New Relic\n
25
- * over SSL.\n
26
- */\n\n`
27
-
28
- class Certificate {
29
- constructor(name, body) {
30
- this.name = name
31
- this.body = body
32
- }
33
-
34
- toEntry() {
35
- let output = ` // ${this.name}\n`
36
- const rawPEM = this.body.split('\n')
37
-
38
- for (let i = 0; i < rawPEM.length; i++) {
39
- const line = rawPEM[i]
40
- // some Thawte certificates have Windows line endings
41
- line = line.replace('\r', '')
42
- if (line.match(/END CERTIFICATE/)) {
43
- output += ` "${line}\\n"`
44
- break
45
- }
46
- output += ` "${line}\\n" +\n`
47
- }
48
-
49
- return output
50
- }
51
- }
52
-
53
- function loadCerts(root, callback) {
54
- glob(root, (error, files) => {
55
- if (error) {
56
- return callback(error, null)
57
- }
58
-
59
- const certificates = []
60
- console.log(`Loading ${files.length} certficates.`)
61
-
62
- for (let i = 0; i < files.length; i++) {
63
- const file = files[i]
64
- const certificate = new Certificate(
65
- path.basename(file, '.pem'),
66
- fs.readFileSync(file, 'ascii')
67
- )
68
-
69
- certificates.push(certificate)
70
- }
71
-
72
- callback(null, certificates)
73
- })
74
- }
75
-
76
- function dumpCerts(error, certs) {
77
- if (error) {
78
- console.log(`got ${error.message} reading certs--bailing out`)
79
- process.exit(1)
80
- }
81
-
82
- fs.writeFileSync(
83
- OUTFILE,
84
- HEADER +
85
- 'module.exports = [\n' +
86
- certs.map((cert) => cert.toEntry()).join(',\n\n') +
87
- '\n]\n'
88
- )
89
- }
90
-
91
- loadCerts(CERT_PATH, dumpCerts)
@@ -1,11 +0,0 @@
1
- #! /bin/bash
2
-
3
- # Copyright 2020 New Relic Corporation. All rights reserved.
4
- # SPDX-License-Identifier: Apache-2.0
5
-
6
- sudo apt-get install python openjdk-8-jre -y
7
- echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
8
- curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
9
- sudo apt-get update
10
- sudo apt-get install cassandra
11
- sudo service cassandra start