Skip to main content

Orchester allows you to easily add/remove use to your favorite platforms.

Project description

orchester

PyPI versionPyPI downloads

This is a python set of tools to easily manage membership of users to your preferred cloud services.

Getting started

Install the package with pip install orchester

If you want on using the command line interface, you must define some configurations.

Configuration

Configuration is done through a .orchester.json configuration file. You can see a documented template here: .orchester-doc.json The values labeled by [CLI] are only required for the CLI.

Note: An empty template is available here: .orchester.json

The application will attempt to load from this following order:

  • A specific path defined in the ORCHESTER_CONFIG_PATH environment variable.
  • In the current working directory
  • In the user folder (home)

CLI

Orchester is distributed with a command line tool. Once installed, you can call it with orchest --help

The following commands are available:

  • orchest -c CONNECTOR_TYPE check IDENTIFIER: Check if the user is registered to the organization
  • orchest -c CONNECTOR_TYPE add IDENTIFIER Add a user to the organization
  • orchest -c CONNECTOR_TYPE rm IDENTIFIER: Remove a user from the organization
  • orchest generate CONNECTOR_TYPE: Generates the OAuth credentials for connector.

If you want to omit the CONNECTOR_TYPE for each command, you can set a default connector in your configuration file:

"default_connector": "trello"

The connector_type must be CONNECTOR name of a valid connector. The connectors are described in the next section.

Connectors

Trello

CONNECTOR: trello

IDENTIFIER: Use the trello username


  1. Get your API token and secret from https://trello.com/app-key (Look for the Api Key and OAuth secret)
  2. Add the Api Key and OAuth secret in the .orchester.json configuration file in api_key and api_secret.
  3. Run orchest generate trello script to get the credentials
  4. Set the OAuth token and OAuth secret in the configuration file in token and token_secret

Github

CONNECTOR: github

IDENTIFIER: Use the github username


To use the Github service, you need an Personal Token.

Go on Github under Settings > Developer settings > Personal access tokens

Then, create a new token and save it in your configuration file at token.


Slack

CONNECTOR: slack

IDENTIFIER: Use the slack email


To get started with slack, you first need to get a legacy token and a OAuth token.

Legacy token

Simply go to the following url and issue a new legacy token: https://api.slack.com/custom-integrations/legacy-tokens

You can then add the legacy token in legacy_token.

Note: You'll need to be connected to issue a token.

OAuth token

Before you can actually generate an OAuth token, you'll need to have a Slack application.

How to create an app?: Go to https://api.slack.com/apps and click on Create New App
You must add the following permission scopes: users:read and users:read.email
You will also need to set the following Redirect URI: http://localhost:8888/finish_auth

You can then store the client id and client secret in client_id and client_secret

You are now all setup to generate the final OAuth token.

  1. Run orchest generate slack
  2. Go to: http://localhost:8888/begin_auth
  3. Click on "Add to slack"
  4. Click Authorize
  5. It should show a OAuth token. Save that in the configuration file at token

Warnings: Free Slack users can't use the api to remove a user.


Google Drive

IDENTIFIER: Use the google email

CONNECTOR: g_drive


Before you begin, you'll need a google_drive_credentials.json file at the root of this folder.

You can get it by creating credentials in your Google Console API

Tutorial: Tutorials coming from: https://developers.google.com/drive/api/v3/quickstart/python

Once you have the credentials.json file, you need to define the credential_path and token_path.

After that, you can run orchest generate g_drive to create the google_drive_token.json.

API

The API is pretty straight forward. Each connectors inherit from orchester.connectors.AbstractBaseConnector

If you want to use all the connectors at one time, you can use the orchester.ConnectorManager

The manager instantiate all the connectors and let you easily interact with the connector one at a time.

Here's an example to use the github connector:

from orchester.connectors import GithubConnector, RequestFailedError

connector = GithubConnector(access_token="my token...",organization_id='myOrg')

try:
    user_exist = connector.is_registered_to_group('popojargo')
    print('User is registered to myOrg')
except RequestFailedError:
    print('The request failed.')


try:
    connector.remove_from_group('popojargo')
    print('User removed to myOrg')

except RequestFailedError:
    print('The request failed.')


try:
    user_exist = connector.add_to_group('popojargo')
    print('User added to myOrg')

except RequestFailedError:
    print('The request failed.')

Contributing

For developer documentation, see README-DEV.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orchester-0.0.2.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

orchester-0.0.2-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file orchester-0.0.2.tar.gz.

File metadata

  • Download URL: orchester-0.0.2.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.8

File hashes

Hashes for orchester-0.0.2.tar.gz
Algorithm Hash digest
SHA256 fc934fd59ff4cdbb63850175e17d9b284e9209d4cb7427d7d5833ffdc2c76956
MD5 b36bba7080f33c72b893914b2350fc42
BLAKE2b-256 b082714c1f3e25d4d1cdb052d1d870b87cdbb4f7558f8e80f6797591fc6a1d52

See more details on using hashes here.

File details

Details for the file orchester-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: orchester-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.8

File hashes

Hashes for orchester-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 30af066c7acf3994a0fc8651ff6856217ce70e31a7ba665584349251e10d460d
MD5 d39db94a799516c2729c7c79744c7ccc
BLAKE2b-256 033711a786cdc7b8e00abef5232ec1e3bc0610ff44fa340fc0fe37d4b969a0bb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page