Skip to content

Releases: matthewhartstonge/storage

v0.29.0

08 Aug 03:14
3b7a4ad

Choose a tag to compare

v0.29.0 Pre-release
Pre-release

🚢 v0.29.0 - 2022-07-28

Breaking Change:
If you are running on Mongo<4.0, please update as the indices will now build in the foreground. Mongo>4.0 has changed to a new indexing engine and this option is now deprecated.

Removed

  • mongo: deprecates SetBackground due to MongoDB 4.0 EOL.

Changes: v0.28.0...v0.29.0

v0.28.0

18 Oct 02:02
4a142a2

Choose a tag to compare

v0.28.0 Pre-release
Pre-release

🚢 v0.28.0 - 2021-10-18

Added

  • mongo: adds support for mongodb+srv connection strings.
  • mongo: binds in a default TLS Config if ssl=true and a TLS config has not been provided.
  • storage: adds Expirer interface to enable stores to add support for configuring record expiration.
  • mongo: implements storage.Expirer interface to enable TTL based expiry on tokens.

Changed

  • mongo: migrated internal use of isDup(err) to mongo.IsDuplicateKeyError(err).

Removed

  • mongo: removed internal isDup(err) function.

Changes: v0.27.0...v0.28.0

v0.27.0

24 Sep 04:15
2b859b6

Choose a tag to compare

v0.27.0 Pre-release
Pre-release

v0.27.0 - 2021-09-24

This release will add a new hashed index on signature for the accessTokens collection. This makes the old accessTokens.idxSignatureId index redundant and can be removed.

Added

  • mongo: migrates to using a hashed index for the signature index on access tokens.
    • The signature for an access token could grow quite large, leading to a large index. By migrating to using a hashed index, the size can be reduced to 2% of the original indices size. In our testing we went from 2.8GB -> 57MB.

Fixed

  • examples/mongo/authorizationserver: removes mongo-features example.

Changes: v0.26.0...v0.27.0

v0.26.0

05 Aug 03:00
be57688

Choose a tag to compare

v0.26.0 Pre-release
Pre-release

v0.26.0 - 2021-08-05

Added

  • utils: adds functions to help with adding and removing items from string sets.
  • user: adds test cases for enabling and disabling person access.
  • user: adds tests for user.FullName().
  • user: adds test cases to check create time and update time equality.
  • user: adds test cases to check equality of allowed person ids, person id and extra fields in user record.
  • user: adds support for storing user roles.
  • storage: adds a benchmark for user.Equal().

Changed

  • user: refactors enable and disable functions to use util append/remove functions.
  • examples/mongo: updates go.mod to [email protected] and tidies go.sum.

Fixed

  • mongo: SetClientAssertionJWT now logs unknown errors if deleting expired JTIs fails.
  • mongo: fixes do not pass a nil Context (staticcheck)
  • user: fixes whitespace issues when returning a user's full name.

Removed

  • deps: removed support for dep.

Changes: v0.25.1...v0.26.0

v0.25.1

05 Aug 00:24
14c1fab

Choose a tag to compare

v0.25.1 Pre-release
Pre-release

v0.25.1 - 2021-07-27

Changed

  • deps: updates to [email protected].
    • This mongo driver release contains a fix to prevent clearing server connection pools on operation-scoped timeouts.

v0.25.0

01 Jun 03:26
a098007

Choose a tag to compare

v0.25.0 Pre-release
Pre-release

v0.25.0 - 2021-06-01

Added

  • README: updates documentation.
    • Adds links to download Go.
    • Adds information for working with Go modules.
    • Changes build badge link to travis-ci.com.
    • Changes mgo link to the official MongoDB mongo-driver.

Changed

Fixed

  • mongo: not found on token revocation should return nil.
  • .travis: go install goveralls binary.

Removed

  • transactional: removes transactional interface implementation.
    • There isn't an easy way to tell via the mongo driver if the version of mongo running is compatible with transactions (>mongo 4.4) without enabling admin commands to be run for example, db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ). Therefore, for now, it's easier to remove it until every current mongo version supports transactions.
  • deps: removes use of mongo-features due to bugfix released via mongo-driver.
    • mongo-driver wasn't pulling or pushing sessions into the context correctly.
    • mongo-features also relied on admin commands/permissions to detect the running mongo version to ascertain if the mongo version connected to was transaction compatible, so no longer needed.

v0.24.0

01 Sep 23:50
7058553

Choose a tag to compare

v0.24.0 Pre-release
Pre-release

v0.24.0 - 2020-09-02

Breaking changes

As mentioned under changed:

  • AuthClientFunc and AuthUserFunc now take in a context.
  • store.DB is now of type *DB not *mongo.Database but the API remains the same. If you explicitly require type *mongo.Database, you can obtain this by stepping into the DB wrapper store.DB.Database.

Added

  • deps: adds [email protected] for mongoDB feature detection.
  • mongo: adds DB a wrapper containing *mongo.Database and *feat.Features.
  • mongo: implements mongo feature detection for correct session and transaction handling.

Changed

  • storage: AuthClientFunc and AuthUserFunc now accept a context.
    • type AuthClientFunc func() (Client, bool) => type AuthClientFunc func(ctx context.Context) (Client, bool)
    • type AuthUserFunc func() (User, bool) => type AuthUserFunc func(ctx context.Context) (User, bool)
  • mongo: all handlers have moved from DB *mongo.Database to our wrapper
    DB *DB in order to provide mongoDB feature detection for managing sessions
    and transactions, if available.
  • examples/mongo/authorizationserver: puts session creation behind a feature flag.

v0.23.0

27 Aug 11:38
36f91ae

Choose a tag to compare

v0.23.0 Pre-release
Pre-release

v0.23.0 - 2020-08-27

Added

  • mongo: implements storage.Transactional

Changed

v0.22.2

06 Jul 00:32
ec315aa

Choose a tag to compare

v0.22.2 Pre-release
Pre-release

v0.22.2 - 2020-07-06

Fixed

  • mongo: fixes UserManager.Migrate returning not found on a successful insert.

v0.22.1

06 Jul 00:13
4f8ec9a

Choose a tag to compare

v0.22.1 Pre-release
Pre-release

v0.22.1 - 2020-07-06

Fixed

  • mongo: fixes filter.ScopesIntersection using filter.ScopesUnion instead of filter.ScopesIntersection.