Welcome to the Blender ID Documentation
Here is a growing collection of docs and development notes for the Blender ID project.
Project layout and modules
├── assets_shared # Blender Web Assets: 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.
│ └──__settings.py # Example development settings
└── docs # Project documentation
OAuth Applications
You can use Blender ID as OAuth provider for your application. In order to do so:
- Request (via mail to production at blender.org) Blender ID Application credentials by providing:
- The name of the Application
- The URL of the Application
- The return URL
- And image to be used in the OAuth screen
- Define the scopes of the Application and use the API endpoints accordingly
The main benefits of using Blender ID for your Application are:
- Use a service trusted within the Blender Community
- Access to Blender ID badges associated to a user (Blender Development Fund Membership, Blender Studio subscriptions, etc.)
API endpoints
https://id.blender.org/oauth/authorize
: Authorization endpointhttps://id.blender.org/oauth/token
: OAuth token validation endpointhttps://id.blender.org/api/me
: Retrieve info about the current user. Returns a JSON doc with the following keys:id
: User ID (this will not change - use to create a reference to the user in your Application)full_name
: User full nameemail
: User email addressnickname
: User nicknameroles
: Dictionary with active public roles associated with the user- TODO: specify which roles are currently available
date_deletion_requested
: Date when user account deletion was requested, if everconfirmed_email_at
: Date when email was confirmed, if ever
https://id.blender.org/api/user/<user_id>
: Retrieve info about any user (requiresuserinfo
scope)https://id.blender.org/api/badges/<user_id>
: Retrieve badges for the user (requires a matching token). Returns a JSON doc with the following keys:label
: Human readable namelink
(optional): URL to a website relevant to the badgedescription
(optional): Short description of the badgeimage
(optional): URL to the badge imageimage_width
(optional): Image widthimage_height
(optional): Image height
Blender ID add-on support
The Blender ID add-on specific authentication module basically provides a slightly less secure but more convenient way to obtain an OAuth authentication token. Effectively it allows username/password entry in the application itself, rather than spawning a web browser.
TODO
The following areas could be documented next:
- Extend development installation
- Extend deployment playbook
- Overall architecture