- 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.
- 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
- Added a new ErrorCode for when chat bots fail to connect
- Made IProvider IAsyncDispsable
- Removed IDatabaseContextFactory dependency from watchdogs
- Jobs will no longer start until instance manager startup is complete
- Chat provider connection is now done as a job, there is no way to retrieve directly this job through the API currently
- Fixed disabled chat bots connecting when their instance onlined
- Fixed issue with chat provider reconnection channel remapping
- IJobManager can now accept a null user in most cases which it will substitute for the TGS user
- Fixed some watchdog issues relating to accessing disposed session controllers
- GetInstance now returns null instead of throwing when the instance is offline. To be honest, we should wrap this in a using.
- Add safe accessor class for controllers that also performs request validation.
- API bump to 7.1.0
- Added ErrorCode 90 for offline instances, replacing the 403 response
- Move jobs now move the directory and are more fail safe
- Creating instances no longer uppercases the path on disk on Windows
- Remove lagacy user/pass header auth
- Use .WithToken on octokit calls
- Cleaned up ApiHeader validation failures and responses
- ApiController constructor parameter requireHeaders now defaults to true
- Added integration test for a bunch of 4XX errors
- Remove config and classes
- Remove launch parameters SecondaryPort. Rename PrimaryPort to Port
- Deprecate ErrorCode 40
- Rename SetPorts right to SetPort
- Remove DualReattachInformation and code surrounding it changed to work with a single ReattachInformation.
- Extra reattach informations will be killed by the ReattachInfoHandler on instance onlining
- Deployment no longer duplicates game folders
- Cleaned up watchdog/monitor dead code
- DmbFactory will check if A/B dirs exist and remap IDmbProvider appropriately
- Migrate everything
- Adjusted integration tests to use 4.3.0 for downgrade test
- Integration test checks setting port to 0 throws a 400