/nr1-catalog

New Relic One Catalog repo of repos

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Community Project header

nr1-catalog

This project is very much in development and not ready for public contribution. It's just being developed in the open.

New Relic One Catalog repo of repos. PR's to this repo trigger the review process for either adding a New Relic One project via the NR1 CLI or upgrading an existing NR1 project.

Usage

This repository is meant to be a repository of submodules that each represent a codebase designed to fit into the New Relic One Catalog. The repository contains three main components:

  1. A collection of submodules each containing an New Relic One application.
  2. GitHub Action automation to handle the verification of PR's and promotion of submodules on a merge to master.
  3. Documentation on the standard(s) for New Relic One Catalog projects.

That functionality manifests in three distinct use cases.

Use Case 1: PR with a new submodule

Actors: Application Developer(s), New Relic Open Source Maintainers

To submit a new New Relic One project (application, etc.) for consideration and review:

  • Make sure your project's repo is public
  • Fork this repo
  • Add your submodule using the git submodule command
cd nr1-catalog/apps
git submodule add [YOUR REPO URL]
# example: git submodule add https://github.com/newrelic/nr1-browser-analyzer.git
git commit -a -m "feat: Adding [YOUR REPO NAME] to nr1-catalog."
  • Submit a PR to this project

From there, New Relic Open Source Maintainers will validate (using a combination of tooling and manual review):

  • Project structure (does it comply with the technical requirements)
  • Compliance with architectural and design standards
  • Compliance with security standards
  • Validation of the documentation and support standards
  • Assignment of a uuid under the global catalog account to this repo (this will need to be generated by someone with access to the account)

Once your PR has been approved and merged it will publish your app to Production.

The catalog maintainers will then update your nerdpack's subscription model to GLOBAL*

*for maintainers: see the hero FAQ doc

To have your app available in the Staging and EU environments: Reach out to the platform services team with your app name, UUID (found in this repo's globals.json file), and desired version so they can tag it in Staging and EU.

Use Case 2: PR to an existing submodule

Actors: Application Developer(s), New Relic Open Source Maintainers

This step verifies the same requirements as Use Case 1, but the review process is focused on the difference between versions.

Use Case 3: Merge of a PR to the master Catalog

Actor: New Relic Open Source Maintainers

When a New Relic Open Source Maintainer merges a PR to master, the referenced submodule is not only checked out, built, and associated to it's global uuid; but the following also occurs:

  • the New Relic One project is published to the global catalog account,
  • the New Relic One project is deployed to the STABLE channel of the global catalog account,
  • and the catalog registry is updated with the latest meta data

Use Case 4: Removal of an Application from the NR1 Catalog

Actor: Application Developer(s), New Relic Open Source Maintainers

Please refer to this WIKI for details on this process.