• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Djblets
    2. Djblets 3.0 Beta 2 Release Notes
  • Home
  • Djblets 5.2.1 Release Notes
  • Djblets 5.2 Release Notes
  • Djblets 5.1.1 Release Notes
  • Djblets 5.1 Release Notes
  • Djblets 5.0.2 Release Notes
  • Djblets 5.0.1 Release Notes
  • Djblets 5.0 Release Notes
  • Djblets 4.0 Release Notes
  • Djblets 4.0 Beta 3 Release Notes
  • Djblets 4.0 Beta 2 Release Notes
  • Djblets 4.0 Beta 1 Release Notes
  • Djblets 3.3 Release Notes
  • Djblets 3.2 Release Notes
  • Djblets 3.1 Release Notes
  • Djblets 3.0 Release Notes
  • Djblets 3.0 RC 1 Release Notes
  • Djblets 3.0 Beta 2 Release Notes
  • Djblets 3.0 Beta 1 Release Notes
  • Djblets 2.3.4 Release Notes
  • Djblets 2.3.3 Release Notes
  • Djblets 2.3.2 Release Notes
  • Djblets 2.3.1 Release Notes
  • Djblets 2.3 Release Notes
  • Djblets 2.2.3 Release Notes
  • Djblets 2.2.2 Release Notes
  • Djblets 2.2.1 Release Notes
  • Djblets 2.2 Release Notes
  • Djblets 2.1.1 Release Notes
  • Djblets 2.1 Release Notes
  • Djblets 2.0 Release Notes
  • Djblets 1.0.18 Release Notes
  • Djblets 1.0.17 Release Notes
  • Djblets 1.0.16 Release Notes
  • Djblets 1.0.15 Release Notes
  • Djblets 1.0.14 Release Notes
  • Djblets 1.0.13 Release Notes
  • Djblets 1.0.12 Release Notes
  • Djblets 1.0.11 Release Notes
  • Djblets 1.0.10 Release Notes
  • Djblets 1.0.9 Release Notes
  • Djblets 1.0.8 Release Notes
  • Djblets 1.0.7 Release Notes
  • Djblets 1.0.6 Release Notes
  • Djblets 1.0.5 Release Notes
  • Djblets 1.0.4 Release Notes
  • Djblets 1.0.3 Release Notes
  • Djblets 1.0.2 Release Notes
  • Djblets 1.0.1 Release Notes
  • Djblets 1.0 Release Notes
  • Djblets 1.0 RC 1 Release Notes
  • Djblets 0.10 Beta 2 Release Notes
  • Djblets 0.10 Beta 1 Release Notes
  • Djblets 0.9.9 Release Notes
  • Djblets 0.9.8 Release Notes
  • Djblets 0.9.7 Release Notes
  • Djblets 0.9.6 Release Notes
  • Djblets 0.9.5 Release Notes
  • Djblets 0.9.4 Release Notes
  • Djblets 0.9.3 Release Notes
  • Djblets 0.9.2 Release Notes
  • Djblets 0.9.1 Release Notes
  • Djblets 0.9 Release Notes
  • Djblets 0.9 RC 1 Release Notes
  • Djblets 0.9 Beta 2 Release Notes
  • Djblets 0.9 Beta 1 Release Notes
  • Djblets 0.8.29 Release Notes
  • Djblets 0.8.28 Release Notes
  • Djblets 0.8.27 Release Notes
  • Djblets 0.8.26 Release Notes
  • Djblets 0.8.25 Release Notes
  • Djblets 0.8.24 Release Notes
  • Djblets 0.8.23 Release Notes
  • Djblets 0.8.22 Release Notes
  • Djblets 0.8.21 Release Notes
  • Djblets 0.8.20 Release Notes
  • Djblets 0.8.19 Release Notes
  • Djblets 0.8.18 Release Notes
  • Djblets 0.8.17 Release Notes
  • Djblets 0.8.16 Release Notes
  • Djblets 0.8.15 Release Notes
  • Djblets 0.8.14 Release Notes
  • Djblets 0.8.13 Release Notes
  • Djblets 0.8.12 Release Notes
  • Djblets 0.8.11 Release Notes
  • Djblets 0.8.10 Release Notes
  • Djblets 0.8.9 Release Notes
  • Djblets 0.8.8 Release Notes
  • Djblets 0.8.7 Release Notes
  • Djblets 0.8.6 Release Notes
  • Djblets 0.8.5 Release Notes
  • Djblets 0.8.4 Release Notes
  • Djblets 0.8.3 Release Notes
  • Djblets 0.8.2 Release Notes
  • Djblets 0.8.1 Release Notes
  • Djblets 0.8 Release Notes
  • Djblets 0.8 RC 2 Release Notes
  • Djblets 0.8 RC 1 Release Notes
  • Djblets 0.8 Beta 3 Release Notes
  • Djblets 0.8 Beta 2 Release Notes
  • Djblets 0.8 Beta 1 Release Notes
  • Djblets 0.8 Alpha 2 Release Notes
  • Djblets 0.8 Alpha 1 Release Notes
  • Djblets 0.7.33 Release Notes
  • Djblets 0.7.32 Release Notes
  • Djblets 0.7.31 Release Notes
  • Djblets 0.7.30 Release Notes
  • Djblets 0.7.29 Release Notes
  • Djblets 0.7.28 Release Notes
  • Djblets 0.7.27 Release Notes
  • Djblets 0.7.26 Release Notes
  • Djblets 0.7.25 Release Notes
  • Djblets 0.7.24 Release Notes
  • Djblets 0.7.23 Release Notes
  • Djblets 0.7.22 Release Notes
  • Djblets 0.7.21 Release Notes
  • Djblets 0.7.20 Release Notes
  • Djblets 0.7.19 Release Notes
  • Djblets 0.7.18 Release Notes
  • Djblets 0.7.17 Release Notes
  • Djblets 0.7.16 Release Notes
  • Djblets 0.7.15 Release Notes
  • Djblets 0.7.14 Release Notes
  • Djblets 0.7.13 Release Notes
  • Djblets 0.7.12 Release Notes
  • Djblets 0.7.11 Release Notes
  • Djblets 0.7.10 Release Notes
  • Djblets 0.7.9 Release Notes
  • Djblets 0.7.8 Release Notes
  • Djblets 0.7.7 Release Notes
  • Djblets 0.7.6 Release Notes
  • Djblets 0.7.5 Release Notes
  • Djblets 0.7.4 Release Notes
  • Djblets 0.7.3 Release Notes
  • Djblets 0.7.2 Release Notes
  • Djblets 0.7.1 Release Notes
  • Djblets 0.7 Release Notes
  • Djblets 0.6.31 Release Notes
  • Djblets 0.6.30 Release Notes
  • Djblets 0.6.29 Release Notes
  • Djblets 0.6.28 Release Notes
  • Djblets 0.6.27 Release Notes
  • Djblets 0.6.26 Release Notes
  • Djblets 0.6.25 Release Notes
  • Djblets 0.6.24 Release Notes
  • Djblets 0.6.23 Release Notes
  • Djblets 0.6.22 Release Notes
  • Djblets 0.6.21 Release Notes
  • Djblets 0.6.20 Release Notes
  • Djblets 0.6.19 Release Notes
  • Djblets 0.6.18 Release Notes
  • Djblets 0.6.17 Release Notes
  • Djblets 0.6.16 Release Notes
  • Djblets 0.6.15 Release Notes
  • Djblets 0.6.14 Release Notes
  • Djblets 0.6.13 Release Notes
  • Djblets 0.6.12 Release Notes
  • Djblets 0.6.11 Release Notes
  • Djblets 0.6.10 Release Notes
  • Djblets 0.6.9 Release Notes
  • Djblets 0.6.8 Release Notes
  • Djblets 0.6.7 Release Notes
  • Djblets 0.6.6 Release Notes
  • Djblets 0.6.5 Release Notes
  • Djblets 0.6.4 Release Notes
  • Djblets 0.6.3 Release Notes
  • Djblets 0.6.2 Release Notes
  • Djblets 0.6.1 Release Notes
  • Djblets 0.6 Release Notes
  • Djblets 0.5.9 Release Notes
  • Djblets 0.5.8 Release Notes
  • Djblets 0.5.7 Release Notes
  • Djblets 0.5.6 Release Notes
  • Djblets 0.5.5 Release Notes
  • Djblets 0.5.4 Release Notes
  • Djblets 0.5.3 Release Notes
  • Djblets 0.5.2 Release Notes
  • Djblets 0.5.1 Release Notes
  • Djblets 0.5 Release Notes
  • Djblets 0.5 RC 2 Release Notes
  • Djblets 0.5 RC 1 Release Notes
  • Djblets 0.5 Beta 1 Release Notes
  • Djblets 0.5 Alpha 3 Release Notes
  • Djblets 0.5 Alpha 2 Release Notes
  • Release Notes
  • Djblets 3.0 Beta 2 Release Notes¶

    Release date: August 17, 2022

    This release contains all bug fixes and features found in Djblets version 2.3.3.

    Installation¶

    To install this release, run the following:

    $ sudo pip3 install \
        -f https://downloads.reviewboard.org/betas/reviewboard/5.0-beta-2/ \
        --pre -U Djblets
    

    We do not recommend upgrading a production server with this version of Djblets. This version is still in development, and is not guaranteed to have API stability.

    Packaging¶

    • Djblets 3.x supports Python 3.7-3.11.

    djblets.extensions¶

    • Fixed a crash when trying to load extensions with bad packaging.

      If an extension package is in a half-installed or broken state, any attempt at loading the extension’s metadata could cause a crash. Djblets now protects against this and sets default metadata for the extension.

    djblets.secrets¶

    • Added classes and a registry for token generators.

      A token generator can generate a cryptographic token, useful for APIs or other purposes.

      There are two built-in token generators:

      • LegacySHA1TokenGenerator – Generates plain SHA1 tokens seeded in part from the server and user details, based on our pre-Djblets 3.0 API token generator.

      • VendorChecksumTokenGenerator – Generates 255-character tokens with a vendor-provided prefix, base62 cryptographically-random data, and a checksum, suitable for secret scanning.

      Custom token generators can be implemented by subclassing BaseTokenGenerator and optionally registering in TokenGeneratorRegistry.

      The registry is also used to fetch the default token generator (which can be set via settings.DJBLETS_DEFAULT_API_TOKEN_GENERATOR), fetch registered token generators, or list all available token generators.

    djblets.webapi¶

    • Added enhanced support for API tokens.

      We’ve introduced some major changes to API tokens, helping provide more control over the lifetime of a token, increasing security, and allowing for secret scanning to help catch leaked credentials.

      API tokens now support:

      • Expiration dates (tokens past an expiration date will no longer work)

      • Invalidation (users or administrators can mark tokens as invalid and specify the reason)

      • A larger length (255 characters)

      • The date the token was last used

      This will require an evolution of any subclasses of BaseWebAPIToken.

      Along with these, the following have been added to facilitate secret scanning:

      • Vendored prefixes (an identifier prefixing the token hash, helping differentiate one product/company’s token from another)

      • Checksums included in the token data (to verify that a token-like string is in fact an API token)

      That support is provided by a new token generator, which must be opted into currently by passing token_generator_id and token_info to WebAPIToken.objects.generate_token(). For example:

      token = WebAPIToken.objects.generate_token(
          user,
          token_generator_id='vendor_checksum',
          token_info={'token_type': 'myprefix'},
          ...)
      

      Expiration can be set the same way. See the documentation for details.

      Djblets 4.0 will require specifying these new arguments. For now, legacy SHA1-based tokens will continue to be generated if not specifying a token generator.

      Custom token generators can also be used.

    Contributors¶

    • Christian Hammond

    • David Trowbridge

    • Michelle Aubin

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Installation
    • Packaging
    • djblets.extensions
    • djblets.secrets
    • djblets.webapi
    • Contributors