- New `ServerUpdateRequest` field `uploadZip`.
- New Administration permission for this.
- `ServerUpdateResponse` will now contain a transfer ticket if set.
- Live tests.
This is super easy after the work done in 09208ade36
When running a distributed swarm server update, only the initiator server will download the update package directly from GitHub. It will then make the package available to the other nodes via a `SwarmController` hosted variant of the `FileTransferService` which they will use to retrieve their copies of the package.
Because of this, it's possible for the update package to be accessed via the regular `TransferController` duing this process. This is acceptable for three reasons:
- We use crytographically secure strings for the transfer service tickets
- If a malicious user steals one or more of the Swarm's update package tickets, the update will simply be aborted.
- An update package is not considered secure data what with this being OSS.
- Bring Serilog LogContext related items into new SerilogContextHelper class.
- ODR LogContext property names.
- InstanceController now inherits InstanceRequiredController and no longer holds an IInstanceManager reference.
- InstanceRequiredController.ValidateInstanceOnlineStatus() no longer static
- Subinterface IInstanceOperations created to reduce surface area InstanceController uses.
- Extracted much of InstanceRequiredController's functionality into new parent ComponentInterfacingController to not break swagger generation type checking (InstanceRequiredController adds the mandatory InstanceId header in the spec but InstanceController inherits ComponentInterfacingController without those checks).
- Added code paths to allow add swarm node identifer to LogContext. Use in Live tests.
- IInstanceManager retrieved via DI in Application for UseAsyncInitialization().
- Correct controller doc comments.
- Minor code cleanups.
- Extract bulk of actions into ServerUpdater class, based on old ServerUpdateInitiator.
- Add new ServerUpdateIntiator for AdministrationController
These changes break some interdependencies between SwarmService and Server.
- Correct the meaning of IRestartHandler.HandleRestart's second argument.
- Eliminate usage of SetupApplication's static IAssemblyInformationProvider and IIOManager.
- 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