JavaScript HTML Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
api/v1 bulkDelete error handling (#979) Aug 17, 2018
cache Fix bug - return Promise.resolve([]) (#983) Aug 16, 2018
clock Collector integration fixes pt. 1 (#973) Aug 6, 2018
config remove toggle: attachSubAspFromDb (#974) Aug 8, 2018
db Current coll current gens (#972) Aug 10, 2018
docs make it easy to turn on debug in heroku (#924) Jul 6, 2018
jobQueue Sigterm event (#952) Aug 3, 2018
migrations Current coll current gens (#972) Aug 10, 2018
public Added new utility icons file from SLDS into public folder (#980) Aug 16, 2018
realtime BugFix: Attach invalid subject (#982) Aug 17, 2018
scripts execute checkdb in release phase (#552) Aug 24, 2017
signal Sigterm event (#952) Aug 3, 2018
tests bulkDelete error handling (#979) Aug 17, 2018
utils add jobCreate activity logging (#967) Jul 24, 2018
view If a room name changes, the subtitle of all open rooms should change … Jul 19, 2018
worker bulkDelete error handling (#979) Aug 17, 2018
.babelrc Squashing all commits Jul 29, 2016
.dockerignore add Dockerfile to build docker image (#386) Jun 16, 2017
.eslintrc Squashing all commits Jul 29, 2016
.gitignore adding .idea/ config to gitignore (#913) Jun 29, 2018
.jscsrc remove unused lensUtils, move gulp style to npm run jscs, upgrade moc… Nov 16, 2016
.sequelizerc Squashing all commits Jul 29, 2016
.travis.yml upgrade to node 8 (#839) May 14, 2018
Dockerfile add Dockerfile to build docker image (#386) Jun 16, 2017
LICENSE.txt Squashing all commits Jul 29, 2016
Procfile make it easy to turn on debug in heroku (#924) Jul 6, 2018
README.md set session secret from env var if provided (#984) Aug 16, 2018
SFDC_CLA.pdf Applying updates from 9-21 (#8) Sep 22, 2016
app.json set session secret from env var if provided (#984) Aug 16, 2018
config.js set session secret from env var if provided (#984) Aug 16, 2018
docker-compose.yml add Dockerfile to build docker image (#386) Jun 16, 2017
gulpfile.js Postinstall improve performance (#890) Jun 20, 2018
index.js Sigterm event (#952) Aug 3, 2018
newrelic.js Adding new relic for lower level instrumentation. (#388) Jun 5, 2017
package-lock.json Use ioredis instead of node redis (#902) Jul 12, 2018
package.json Sigterm event (#952) Aug 3, 2018
rateLimit.js add request_id to req if available (#923) Jul 7, 2018
viewConfig.js Remediation for checkmarx hard-coded password vulnerability (#637) Oct 9, 2017
webpack.config.js correct a bunch of eslint issues (#87) Nov 5, 2016

README.md

Build Status Coverage Status StackShare

Deploy

Refocus

Get started now with our QuickStart guide!

Refocus is a platform for visualizing the health and status of systems and/or services under observation. Check out our home page and our docs.

Features

  • API for everything
  • Pluggable lenses
  • Self-service
  • Easy deployment to Heroku

Quickstart

See the Quickstart guide to get going with Refocus!

Securing Refocus

  1. After installation, log in (UI or API) as admin@refocus.admin with password password and change the password for that account.
  2. Create a new user record for yourself with your real email address, and set your profile to the Admin profile.
  3. If you want to restrict access to specific IP ranges, see IP Restrictions below.
  4. If you want to use your own single sign-on (SSO) user authentication service, see Authentication below.
  5. New users are assigned to the "RefocusUser" profile by default. This profile has read/write permission to all resource types. If you would like to restrict a class of users to have only read access to certain resource types, you can update the ____Access fields in the "RefocusUser" profile record.
  1. If you only want SSO users (no "Local Authentation" users), set environment variable REJECT_LOCAL_USER_REGISTRATION to true. This disables the POST /v1/register endpoint.
  2. Set environment variable SESSION_SECRET to sign the session ID cookie. (When deploying on Heroku, this will be generated automatically for you.)
  3. Set environment variable SECRET_TOKEN to create jwt tokens used for authentication. (When deploying on Heroku, this will be generated automatically for you.)

IP Restrictions

By default, there are no IP restrictions for Refocus access. An admin can configure IP restrictions by adding a config var in Heroku with name IP_WHITELIST and value array of IP ranges, eg. [ [1.2.3.4, 1.2.3.8], [7.6.5.4, 7.6.9.9], [8.8.8.8, 9.9.9.9] ]. Only the specified IP ranges will be allowed access to Refocus.

Authentication

Local Authentication only. SSO is not enabled.

A user should sign up with Refocus using register page or POST to /v1/register. Once registered, the user can sign in using Local authentication - username/password on Refocus login page.

SSO enabled with Local authentication.

Non-SSO users

Non-SSO users should authenticate with Refocus as described above using Local Authentication.

SSO-Users

If Single Sign On (SSO) is configured in Refocus, SSO users can login using 'SSO Login' button on login page. In case of local authentication with username/password, SSO users will be considered as unregistered user unless they sign up using register page or POST to /v1/register. Once an SSO user is registered with SSO username, the user can sign in using local authentication as well.

Using API Access Tokens

See docs.

Dummy SSO Password

When using SSO, a placeholder user record is created and added to the database. Specify a dummy password string for these dummy records. This dummy password is never used for authentication.

Perspective Debugging

If you are troubleshooting realtime event handling in a perspective, add query parameter debug=REALTIME to any perspective URL. This turns on console logging in the browser for all the realtime subject and sample events the perspective receives.

API Documentation

The API is self-documenting based on ./api/v1/swagger.yaml. Start your server and open MY_HOST:MY_PORT/v1/docs for interactive documentation of all the Refocus API endpoints.

Useful Resources

Contributing

Guidelines on contributing to Refocus are available here.

Related Github Repositories

  • refocus-collector - Use a Refocus Collector to push your samples to Refocus.
  • refocus-collector-eval - Utilities used by Refocus Collectors for executing the transform logic from a Sample Generator Template.
  • refocus-ldk - Refocus Lens Developer Kit - a toolkit for developing, testing and packaging Refocus lenses for deployment.
  • refocus-lens-multitable - A fluid multi-table layout. Each table groups subjects together under a shared parent.
  • refocus-lens-simplelist - A simple list of samples sorted by sample name.
  • refocus-lens-tree - Display your subjects and samples in a hierarchical left-to-right tree.
  • refocus-ruby - A ruby library (API wrapper) & CLI project.
  • refocus-sgt-trust1 - A Sample Generator Template for Refocus that pulls data from Salesforce's Trust Status API.
  • refocus-utilities - Some utilities to help keep your Refocus instance running in good health.