Skip to main content

Self-service onboarding and management platform for your cloud projects.

Project description

Cloud Projects for Django Latest version on PyPI

GitHub Workflow Status GitHub Workflow Status Python versions Software license

A pluggable Django web application for onboarding and managing applications and microservices on cloud platforms, the DevOps (DevSecOps) way.

Who Should Use This Application

Any sufficiently large organization runs a significant amount of software on modern cloud infrastructure nowadays, either in public clouds or on premise, in a private cloud. Onboarding this software, typically microservice or monolithic applications, is far from trivial though, especially on premise or with hybrid clouds. Unlike public clouds, which usually have onboarding processes well-defined for single applications, corporate environments run highly custom processes.

Cloud Projects allows organizations to build a self-service infrastructure that can be used by system engineers to automate parts of their usually manual onboarding activities and monitor the progress of those slow-moving activities. Mature agile organizations can even allow software development agencies to service themselves entirely and request corporate project management, DevOps and security specialists to support their engineering workforce through Cloud Projects.

Features

  • Mature software development capabilities (Django Web framework)

  • Pluggable infrastructure for flexible application development (Django apps)

  • Usable defaults and easy configuration (Django settings)

Installation

The easiest way to install django-cloudprojects is with pip:

pip install django-cloudprojects

SAML support is available as an installation option:

pip install django-cloudprojects[saml]

Note that SAML support requires additional libraries installed on your target system, e.g. for Debian/Ubuntu- and RedHat/CentOS-based systems:

sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl
sudo yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel

Basic Usage

  1. In your Django project settings, add cloudprojects and its dependencies to INSTALLED_APPS, optionally omitting the authentication providers you don’t intend to use, add the required authentication backends for Allauth and the Django Admin, and make sure SITE_ID is defined, e.g.

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.messages',
    'django.contrib.sites',
    ...
    # 'django_saml',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    # 'allauth.socialaccount.providers.bitbucket_oauth2',
    # 'allauth.socialaccount.providers.github',
    'allauth.socialaccount.providers.gitlab',
    'cloudprojects',
]

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'django_saml.backends.SamlUserBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
]

SITE_ID = 1
  1. Add cloudprojects to your project’s urls module, e.g.

urlpatterns = [
    ...
    path('', include('cloudprojects.urls')),
]
  1. In your Django project settings, configure the authentication providers as described in the Allauth documentation, e.g.

SOCIALACCOUNT_PROVIDERS = {
    'github': {
        'GITHUB_URL': 'https://github.enterprise.local',
        'SCOPE': ['api'],
    },
    'gitlab': {
        'GITLAB_URL': 'https://gitlab.selfhosted.local',
        'SCOPE': ['api'],
    },
}
  1. Register the authentication apps with your VCS services as described in the Allauth documentation:

    We recommend writing a management command to automatically configure those values during deployment. See our test project for a suggestion on how an implementation may look like.

  2. If you intend to use SAML you need to add all required settings to your project’s Django settings, as described in the python3-saml-django docs.

Development

You may use the included test project for developing interactively, e.g.

pip install .[saml]
pip install pip-tools tox
pip-compile  # generates requirements.txt

Set DEBUG = True in Django settings to persist changes in a local database, e.g.

export DJANGO_DEBUG=true

tests/testproject/manage.py migrate
tests/testproject/manage.py runserver

Run the tests using Tox, e.g.

tox -lv
tox -e flake8,py39-django40
tox -e clean

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

django-cloudprojects-0.3.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

django_cloudprojects-0.3.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file django-cloudprojects-0.3.0.tar.gz.

File metadata

  • Download URL: django-cloudprojects-0.3.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for django-cloudprojects-0.3.0.tar.gz
Algorithm Hash digest
SHA256 24180557f5761c974de1201b6e3fd90a8fb64a063afd1ef51222ae21e665627f
MD5 9c2e101d1722111f2174b23a38c76345
BLAKE2b-256 5079620c9b643c3f8154e852aee437e3db46db78c8ecc9cdba9d48128223f9b9

See more details on using hashes here.

File details

Details for the file django_cloudprojects-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: django_cloudprojects-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for django_cloudprojects-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a54ec13310b5da8fe84745f939ae1c1d313f24e4f8e8a247e982d3c285f58f7
MD5 297c04088270cfef1ec3b33d323c7f98
BLAKE2b-256 9dbbef8f61a5b145b7da718caf91a2eaed7d6b4cc54f2b5b964db83a87b6a93b

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