/merou

Permission management service

Primary LanguagePythonOtherNOASSERTION

merou

Build Status

Code Style: Black

Deprecation

The Merou/Grouper project has been deprecated. You may continue to use and maintain forks of the project, but the Dropbox team will no longer contribute to this repository.

Description

Merou is an application to allow users to create and manage memberships to their own groups. It requires Python 3.7 or later.

Note: We renamed the project to avoid a namespace conflict, but it isn't reflected in the codebase yet.

Installation

Standard Python package installation instructions apply. You will need Python 3 and development headers for MySQL.

On Debian-based systems:

Next you need to configure grouper to find a SQL-style backing database and stand up processes to serve the read-write web UI and read-only programmatic API. There's an sample configuration file, suitable for local development and testing, in config/dev.yaml.

Running a Test instance

Grouper runs behind a reverse proxy that handles authentication and so expects a valid, authenticated, user account. I've included a test proxy for running on development instances.

Creating a development instance:

Setting up the first groups and permissions

In order to bootstrap your new Grouper environment, you will want to create a user for yourself and add it to the grouper-administrators group.

Running the tests

Some tests require a recent (>= 2.31) version of chromium-driver, which can be installed via apt or Homebrew:

(This may be called chromium-chromedriver in older versions.) Once chromium-driver is installed, the tests can be run using pytest:

If you see test failures and suspect incompatible library versions (e.g., an existing tornado install at a different major release than that in our requirements.txt), then you can try using a virtual environment.

All Merou code is formatted with black, which is installed by the requirements-dev.txt requirements file for Python 3. After installation, you can reformat all source code with:

All new code must be formatted with the version of black indicated in requirements-dev.txt in order to pass Travis CI tests.