Move `BridgeController` route but BYOND forces us to support the legacy one as well.
Add a basic homepage if it's not obvious where to redirect the user.
Closes#1689
- Add one hub `/hubs/jobs`, strongly typed API included.
- Adjust request pipeline to support SignalR.
- Allow `Accept: text/event-stream` for SSE requests.
- Add client library support for hubs.
- Add integration tests.
- Add IPermissionSetNotifyee to support dynamic changes based on perms.
- Keep job state in `JobService` for pushing updates.
- `nbf` and `exp` should be numbers, not strings.
- Parse JWT in `ApiHeaders` fully for errors.
- Use `iat` and increment `nbf` by one second if equal and may trigger the `LastPasswordUpdate` bug.
- Make client aware of this change and move the delay there.
- Deprecated `TokenResponse.ExpiresAt`.
- 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.
- 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.
- 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
- API and client to version 5.0.0
- Added a bunch more model validations
- Added error codes
- Added limits to database strings
- Redid client exceptions to be more sane
- Added configurable instance and user limits
- Always clamp rights to their valid ranges
- Add an error if the minimum password length is more than the string limit
- Fixed chat bot name contraints crossing instances
- Enforce that SIDs be unique globally
- Normalize instance paths to forward slashes on windows. Added to sanitizer
- Added migrations
- Added ApiAssert for testing error codes