- Unsealed ApiClient to allow tests to override with rate limit aware client that waits for rate limits to clear.
- Allowed injecting into ServerClientFactory's static ApiClientFactory.
- Use Octokit provided function for calculating retry delays.
- Fixed a rogue newline semicolon.
- Moved downgrade migrations test out of live tests.
- Admin tests now check for V5 releases.
- Fixed not disposing a StringContent in ApiClient.
- Bump client patch version.
- Added missing .ConfigureAwait(false) to async ApiClient call.
- Add ErrorCode for if a BYOND installation delete attempt is made for the active version.
- Added ByondVersionDeleteRequest new parent of ByondVersionRequest.
- Added ByondRights.DeleteInstall.
- Added BYOND install delete support to client
- Made ByondExecutableLock use the reference counting system.
- Moved TrustDmbPath to ByondManager internals. Removes ByondExecutableLock's dependency on IIOManager.
- Ensured ByondManager doesn't deal in Versions where .Build == 0.
- Fixed race condition where ByondController could attempt to install a version in the scope of a request.
- Fixed long running DMAPI test code specifying a minimum security level of Ultrasafe when it writes files.
- Added JobsRequiredTest.WaitForJobProgress.
- Added BYOND installation deletion integration tests.
- Fixed modifying the user BYOND configuration having a race condition across instances.
- Various code cleanups.
- Set all requests to use assemblyInformationProvider UserAgent by default.
- Removed DefaultIOManager's dependency on IAssemblyInformationProvider.
- Fixed bad Dispose scope for requests under construction in SwarmService.
- Address various IDE messages
- Additional logging
- Do not access DB in Watchdog's actual Dispose
- Fix issue with legacy behaviour in PGSQL
- Remove obsolete dotnet workaround
- Update to v3 actions checkout/upload-artifact/download-artifact
- Make Internal.User abstract
- Move User Id and Name to new UserBase class
- ShallowUsers are now only UserBase
- Moved PermissionSet to Internal.UserGroup
- Old Internal.UserGroup properties moved to new Internal.UserGroupBase
- Fixed WriteUsers being able to read users with POST /User
- Fixed full users returned from POST /User not including group permission sets
- Add generic Paginated<TModel> for pagination responses.
- Added pagination helper to ApiController.
- Implemented pagination for all previously IEnumerable<T> response endpoints.
- Added IApiTransformable<TApiModel> for host models finally.
- Added PaginationSettings to client List endpoints.
- Use two deprecated ErrorCodes for page parameter validation.
- Re-enabled to OpenAPI root array response lint.
- Add some integration tests with users.
- Bump all packages as high as possible
- ASP .NET Core packages to 3.1.10
- Add a warning about the annoying LoggerFactory issue in host watchdog project
- Add missing exception constructors to client
- Switch to using the correct .NET analyzers
- Added MinimumLength to several existing and new
StringLengthAttributes.
- Refactored permissions off User model to new PermissionSet model.
- Added UserGroups, which contain their own PermissionSet. A user can
have either a UserGroup or dedicated PermissionSet.
- Added UserGroupController and client for handling groups.
- Renamed InstanceUser to InstancePermissionSet and associated it with
PermissionSets instead of Users.
- Inject active permission sets into AuthenticationContext.
- Sanitize away top level child properties of client request bodies
(hopefully).
- Added groups integration tests. Main test now runs in a group context.
- Added migrations with hand-written transition SQL.
- Resetting the admin user disassociates them from any groups.
Fuck this huge commit