Skip to main content

Vault Screenshot

Vault

build status

Admin webapp for OpenStack Keystone and OpenStack Swift.

Short description

Manage users and projects on your Keystone service.

Manage containers and objects on Swift. (A customized version of django-swiftbrowser)

How Vault works

Teams

Vault has users and teams. Users have the permission to add other users to their teams. This gives them more autonomy.

Keystone Projects

Users can create projects that will belong to their teams. A Keystone project corresponds to a Swift account.

Swift Accounts

Users can create, modify or delete any container or object from accounts owned by one of their teams.

Administration

An admin can create users and teams, as well as add and remove users from those teams. Admins can also manage Keystone projects and users.

Running locally with Docker Compose

This section describes how to use Docker Compose to locally setup Vault, running all the necessary services in containers.

$ make docker-start

After a while, Vault will be accessible at localhost:8000. The initial admin user's credentials are:

  • username: admin
  • password: admin

There will also be a non-admin user available. That user's credentials are:

  • username: user
  • password: user

For more information on the docker implementation see Docker.

Basic setup for production environment

This section describes how to setup Vault in your own infrastructure, to facilitate administration of your existing Keystone and Swift services. In this case, Vault will run in your own environment, such as in a Virtual Machine.

1. Install dependencies

$ pip install -r requirements.txt

2. Set environment variables

$ export VAULT_MYSQL_DB=vault
$ export VAULT_MYSQL_USER=mysql_user
$ export VAULT_MYSQL_PASSWORD=mysql_pass
$ export VAULT_MYSQL_HOST=mysql.endpoint
$ export VAULT_MYSQL_PORT=3306
$ export VAULT_KEYSTONE_USERNAME=keystone_user
$ export VAULT_KEYSTONE_PASSWORD=keystone_password
$ export VAULT_KEYSTONE_PROJECT=Vault
$ export VAULT_KEYSTONE_URL=http://keystone.endpoint:5000/v3

For optional variables and more information on each of the environment variables, see Environment Variables.

3. Create a MySQL database and the MySQL user

mysql> create database vault;
mysql> CREATE USER 'mysql_user'@'localhost' IDENTIFIED BY 'mysql_pass';
mysql> GRANT ALL PRIVILEGES ON vault.* TO 'mysql_user'@'localhost';

Then

$ python manage.py migrate

4. Create a superuser

$ python manage.py create_user -s

You will be asked for a username, e-mail, team and password. A superuser with the provided information will be created. If the team does not yet exist, it will be created. The superuser will be added to the provided team.

Optionally, you can pass the --username, --email, --teamname and --password arguments, skipping the need to interactively fill out these pieces of information.

The -s (or --superuser) option makes the new user a superuser, meaning it has admin privileges. For a normal user, don't use this option.

5. Run

$ python manage.py runserver

In a production environment, it is recommended to use a WSGI HTTP server. Here's an example using Gunicorn:

gunicorn --timeout 60 -b 0.0.0.0:$PORT vault.wsgi

Authentication

Vault uses the default Django authentication, but also allows for OAuth2 authentication via django-all-access. To add an OAuth2 provider, simply use the Django admin. For more information, see OAuth2 Authentication.

Only admins can create new users, unless when using OAuth2 authentication.

Static files

If you want to upload Vault's static files to your current Swift cluster, simply create a project (named here as <swift-project>) and, in that project, a container (named here as <swift-container>). Then, using the credentials of a user with permission to write to that container, do the following:

$ python manage.py collectstatic --noinput
$ swift upload --os-username=<swift-user> --os-password=<swift-pass> --os-project-name=<swift-project> --os-auth-url=<swift-auth-url> --os-storage-url=<swift-admin-url> <swift-container> vault_static/

Running tests

pip install -r requirements_test.txt
make tests

Creating new apps for Vault

While Vault already delivers an app for Swift management and another for Keystone management, it also allows you to easily implement your own apps. This helps you centralize several services in a single, standardized web interface. For more information, see How to create a Vault App.

Dependencies

  • Django
  • Swift
  • Keystone

Locale

How to edit locale files:

# In the app directory
django-admin makemessages --all
django-admin compilemessages --locale=pt_BR

Metadata

Release files for vault 1.4.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vault 1.4.25
File Size Uploaded
vault-1.4.25.tar.gz 2.0 MB Details

Release files / vault-1.4.25.tar.gz

Download URL vault-1.4.25.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
6b083e4129ccb2d58e969cf989e526aeb75bea69dcace1e68001ec52cc684c68
BLAKE2b-256 checksum
How to use checksums
a15458012ac8b9ef69031e6aa0b72c5b57d05b1801d4c4120490d5b13f9039b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.9.6 requests/2.19.1 setuptools/67.6.1 requests-toolbelt/0.10.1 tqdm/4.65.0 CPython/3.7.16

Release history Release notifications | RSS feed

This release

1.4.25 This release

1 release file

1.4.24

1 release file

1.4.23

1 release file

1.4.22

1 release file

1.4.19

1 release file

1.4.17

1 release file

1.4.16

1 release file

1.4.15

1 release file

1.4.14

1 release file

1.4.13

1 release file

1.4.12

1 release file

1.4.11

1 release file

1.4.10

1 release file

1.4.9

1 release file

1.4.8

1 release file

1.4.7

1 release file

1.4.6

1 release file

1.4.5

1 release file

1.4.4

1 release file

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.23

1 release file

1.3.22

1 release file

1.3.21

1 release file

1.3.20

1 release file

1.3.19

1 release file

1.3.18

1 release file

1.3.17

1 release file

1.3.16

1 release file

1.3.15

1 release file

1.3.14

1 release file

1.3.13

1 release file

1.3.12

1 release file

1.3.11

1 release file

1.3.10

1 release file

1.3.9

1 release file

1.3.8

1 release file

1.3.7

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.27

1 release file

1.2.26

1 release file

1.2.25

1 release file

1.2.24

1 release file

1.2.23

1 release file

1.2.22

1 release file

1.2.21

1 release file

1.2.20

1 release file

1.2.19

1 release file

1.2.18

1 release file

1.2.17

1 release file

1.2.16

1 release file

1.2.15

1 release file

1.2.14

1 release file

1.2.13

1 release file

1.2.12

1 release file

1.2.11

1 release file

1.2.10

2 release files

1.2.9

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.22

1 release file

1.0.21

1 release file

1.0.20

1 release file

1.0.19

1 release file

1.0.17

1 release file

1.0.16

1 release file

1.0.15

1 release file

1.0.14

1 release file

1.0.13

1 release file

1.0.12

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page