Financial-Times / origami-registry-ui

Get information about Origami components, services, and repositories.
https://registry.origami.ft.com/
15 stars 3 forks source link

Origami Registry UI (Deprecated)

Get information about Origami components, services, and repositories.

MIT licensed

Table Of Contents

Requirements

Running Origami Registry UI requires Node.js and npm.

Running Locally

Before we can run the application, we'll need to install dependencies:

npm install

In order to bundle the JS and CSS that the application will be using locally, we will then need to run:

npm run build

To bundle the JS and CSS for development whenever changes are made run:

npm run watch

Then run the application in development mode with:

make run-dev

Now you can access the app over HTTP on port 8080: http://localhost:8080/.

Configuration

We configure Origami Registry UI using environment variables. In development, configurations are set in a .env file. In production, these are set through Heroku config. Further documentation on the available options can be found in the Origami Service documentation.

Required everywhere

Required in Heroku

Required locally

Headers

The service can also be configured by sending HTTP headers, these would normally be set in your CDN config:

Operational Documentation

TODO everything in this section is a lie until we make the operational-documentation folder

The source documentation for the runbook and healthcheck endpoints (EU/US) are stored in the operational-documentation folder. These files are pushed to CMDB upon every promotion to production. You can push them to CMDB manually by running the following command:

make cmdb-update

Testing

The tests are split into unit tests and integration tests. To run tests on your machine, you'll need to install Node.js and run make install. Then you can run the following commands:

make test              # run all the tests
make test-unit         # run the unit tests
make test-integration  # run the integration tests

You can run the unit tests with coverage reporting, which expects 90% coverage or more:

make test-unit-coverage verify-coverage

The code will also need to pass linting on CI, you can run the linter locally with:

make verify

We run the tests and linter on CI, you can view [results on CI][ci]. make test and make lint must pass before we merge a pull request.

Deployment

The production (EU/[US][heroku-production-us]) and QA applications run on Heroku. We deploy continuously to QA via [CI][ci], you should never need to deploy to QA manually. We use a Heroku pipeline to promote QA deployments to production.

You can promote either through the Heroku interface, or by running the following command locally:

make promote

Monitoring

Trouble-Shooting

We've outlined some common issues that can occur in the running of the Origami Registry UI:

What do I do if memory usage is high?

For now, restart the Heroku dynos:

heroku restart --app origami-registry-ui-eu

If this doesn't help, then a temporary measure could be to add more dynos to the production applications, or switch the existing ones to higher performance dynos.

What if I need to deploy manually?

If you really need to deploy manually, you should only do so to QA (production deploys should always be a promotion). Use the following command to deploy to QA manually:

make deploy

License

The Financial Times has published this software under the MIT license.