Unified login system for all services around Blender. https://id.blender.org/
Go to file
Márton Lente f84bbd01a5 UI: Implement web-assets v2 component nav-pills
Implements Web Assets v2 nav-pills component as sidebar nav, as it was
introduced in v2.0.0-alpha.40.

Pull Request: #93592
2024-09-27 11:24:23 +02:00
assets_shared@04359665df Chore: Update web-assets to v2.0.0-alpha.41 2024-09-27 10:56:19 +02:00
bid_addon_support fix identation 2024-07-23 12:04:28 +02:00
bid_api API: remove create-user (Blender Store's legacy endpoint) 2024-07-29 12:27:49 +02:00
bid_main UI: Implement web-assets v2 component nav-pills 2024-09-27 11:24:23 +02:00
blenderid Cleanup: Remove remaining Google Analytics code 2024-09-11 13:19:16 +02:00
docs Initial mfa support (for internal users) (#93591) 2024-08-29 11:44:04 +02:00
integration_tests Changed Cloud address in fixture and README to http://cloud.local:5001/ 2018-07-11 12:41:30 +02:00
mfa add TODO for webauthn attestations 2024-08-30 12:23:43 +02:00
playbooks Playbooks: update to latest shared 2024-09-06 13:42:09 +02:00
templates UI: Implement web-assets v2 component nav-pills 2024-09-27 11:24:23 +02:00
.env.example Missing .env.example 2024-07-30 09:36:20 +02:00
.gitignore use .env in settings.py 2024-07-23 18:14:35 +02:00
.gitmodules UI: Blender-id web-assets v2 upgrade 2024-08-22 14:41:31 +02:00
.pre-commit-config.yaml Update pre-commit deps 2024-05-31 15:44:02 +02:00
deploy.sh Deploy: Add production branch update to deploy.sh 2024-09-11 14:43:46 +02:00
LICENSE.txt Add GPL 3 license file 2019-09-17 11:44:41 +02:00
manage.py Require Python 3.6 2017-06-13 16:47:30 +02:00
pyproject.toml pyproject: specify exptected python version 2024-04-08 16:57:49 +02:00
README.md Update README: no PostgreSQL as requirement for development 2024-09-12 17:04:53 +02:00
requirements_dev.txt Initial mfa support (for internal users) (#93591) 2024-08-29 11:44:04 +02:00
requirements_prod.txt use sqlite as a default in dev 2024-08-16 12:33:40 +02:00
requirements.txt Remove "login as" support 2024-08-30 18:17:23 +02:00
setup.cfg PEP,docstrings: ignore more rules for now 2023-12-14 21:42:19 +01:00

Table of Contents

Blender ID

Blender ID is the unified login system for all services around Blender. With just one account you can set up a Blender Studio subscription or a Blender Development Fund membership, sign up for Blender Conference talks, manage your extensions at Blender Extensions Platform.

Requirements

Development

Setup

Create and activate a virtual environment using your favourite method, e.g.

python3.10 -m venv .venv
source .venv/bin/activate

From this point on we assume you run everything with the virtual environment active.

Install required packages:

pip install -r requirements_dev.txt

Make a copy of example .env:

cp .env.example .env

Initialise submodules included into this repo:

git submodule update --init

Generate oidc.key:

openssl genrsa -out oidc.key 4096

Create the database tables and load some basic data to work with using the following commands:

./manage.py migrate
./manage.py loaddata **/fixtures/*.json

Create a superuser account to be able to login and access /admin/:

./manage.py createsuperuser

Collect media from fixtures and place into the media directory:

./manage.py collectmedia

Update /etc/hosts to point to id.local, e.g.:

127.0.0.1   id.local

Run ./manage.py runserver or ./manage.py runsslserver if you need to test yubikeys.

Development server is now available at http://id.local:8000/ or https://id.local:8000/ for runsslserver

Deploy

See playbooks.

Project layout and modules

├── assets_shared           # Blender Web Assets submodule: CSS, JS, etc. reused in Blender web-projects.
├── bid_addon_support       # Django app for the Blender ID add-on API (see below).
├── bid_api                 # Django app for APIs that are neither OAuth2 nor Blender ID add-on support
├── bid_main                # Main Django app, taking care of the web interface and OAuth2 authentication.
│   └── static              # Blender ID-specific asset sources (CSS, JS, etc.).
├── blenderid               # Django project, includes all the settings and top-level URL config.
│   └── .env.example        # Example development settings
└── playbooks               # Deployment playbooks and inventory
    └── shared              # Playbooks submodule reused in Blender web-projects.

OAuth

See OAuth.md.

Account deletion

See user_deletion.md.

Multi-factor authentication

See mfa.md.

Troubleshooting

"Site matching query does not exist."

Do this, activate Blender ID virtualenv environment and run:

./manage.py loaddata default_site

Then access your site at http://id.local:8000/. Add an entry to your hosts file if necessary.