74 Commits

Author SHA1 Message Date
Jordan Dominion 3c46164515 ThrowsExactly conversion except harder 2025-08-01 19:37:43 -04:00
Jordan Dominion abf12000cc Fixes for OIDC stuff 2025-03-10 18:09:28 -04:00
Jordan Dominion 2e75125860 OIDC First Implementation 2025-03-09 17:53:43 -04:00
Jordan Dominion 06d087fd3b Fix unit test 2025-02-08 19:48:01 -05:00
Jordan Dominion d235bcc482 Log the database provider used 2025-02-07 18:50:04 -05:00
Jordan Dominion 639e27dde3 Fix build 2024-09-08 21:32:20 -04:00
Jordan Dominion cc6ee66733 ValueTask conversion for high level server stuff 2023-10-07 16:05:48 -04:00
Dominion a1f26709db Add API support for uploading custom TGS updates
- 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
2023-06-10 20:53:29 -04:00
Dominion dfd903c140 Fix name of test class 2023-06-10 16:13:34 -04:00
Dominion 09208ade36 Swarm updates single source downloads
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.
2023-06-10 16:13:29 -04:00
Dominion 43e1fec1b0 Move a bunch of non-core classes to new Utils namespace
- Clean up VS messages, primarily in SessionController.cs
2023-04-23 13:42:16 -04:00
Dominion 86f9d350f6 Clean up LogContext templating and properties
- 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.
2023-04-23 13:07:40 -04:00
Dominion 2a9a271218 Server Update Process Cleanup
- 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.
2023-04-21 01:49:23 -04:00
Jordan Brown 65ec6a0e98 Remove ConfigureAwait(false) in top level projects 2022-09-19 10:19:08 -04:00
Jordan Brown b9586c7fee The great stylecop update
Beware those that read into this commit. Here there be style conformance...

Closes #1252
2021-05-09 19:27:09 -04:00
Jordan Brown f6b65c4cfa Test build fix 2021-01-25 20:13:44 -05:00
Cyberboss 08cf743d5a Log HttpApiPort on startup 2020-12-27 11:23:41 -05:00
Jordan Brown baec815743 Build fix 2020-11-23 17:04:38 -05:00
Jordan Brown 288d0db2c2 Adds Discord/generic OAuth among other things 2020-11-23 15:12:10 -05:00
Jordan Brown 3452a62589 Fix a minor async delayer issue 2020-05-27 15:13:59 -04:00
Jordan Brown 69a958e9b0 Again, prevent requests from processing until the instance manager is ready. 2020-05-13 12:32:52 -04:00
Jordan Brown 8ee3d69f1c Remove save delay from SetupWizard
- Fix test namespace
2020-04-27 15:06:10 -04:00
Jordan Brown 1cec9dc91c Merge from dev 2020-04-23 00:49:32 -04:00
Jordan Brown 0646fd58af Finish documenting DMAPI constructs. Get tests running 2020-04-21 23:55:59 -04:00
Jordan Brown c351aec284 Fix test 2020-04-21 11:05:32 -04:00
Jordan Brown 795bec18ab Big chungus 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
2020-04-11 13:14:55 -04:00
Jordan Brown 5ce49dfb4d Remove an unused using 2020-03-28 12:13:36 -04:00
Cyberboss 7ec06871c3 Adds new Jobs namespace 2020-01-18 22:09:46 -05:00
Cyberboss db341d43b3 Adds the Database namespace 2020-01-18 21:11:51 -05:00
Cyberboss 284c6c393d Create the System namespace 2020-01-18 20:32:34 -05:00
Jordan Brown 7ccc4fca77 DBConnectionFactory -> DatabaseConnectionFactory
Removes unused using.
2020-01-18 19:47:46 -05:00
Jordan Brown 5bd4a0a2ed Remove unecessary double add of IIOManager to services. 2020-01-18 19:44:53 -05:00
Jordan Brown 8c09521021 Create the .Extensions namespace 2020-01-18 19:39:42 -05:00
Jordan Brown 91c1e073a3 Merge branch 'master' into 886-YouMustTest 2020-01-12 19:38:06 -05:00
Cyberboss cd53ca9db4 General code cleanup pass 2020-01-12 17:29:49 -05:00
Jordan Brown 1084c2714e Preliminary WindowsWatchdog support 2020-01-02 01:34:09 -05:00
Jordan Brown ab55d1f75d Post package upgrade fixes 2019-12-30 20:58:29 -05:00
Jordan Brown 774c2ccd4c Merge branch 'master' into SPA 2018-11-26 16:12:07 -05:00
Jordan Brown ed03008a72 Add TestJobHandler 2018-11-02 14:59:23 -04:00
Cyberboss ddc25b3cf1 Add TestServiceCollectionExtensions 2018-11-01 12:12:49 -04:00
Cyberboss 057b217f76 Fix unit tests 2018-11-01 11:43:07 -04:00
Jordan Brown 70ccd315a3 Add tgstation-server-contol-panel 0.1.3 2018-10-21 21:36:11 -04:00
Cyberboss 0c9a434140 Cleans up a lot of nonsense regarding the snowflakeyness of TokenFactory and CryptographySuite
Add IAsyncDelayer to TokenFactory
2018-10-15 12:47:29 -04:00
Cyberboss 973c0796ab Add IAsyncDelayer to SetupWizard 2018-10-15 11:20:04 -04:00
Cyberboss a06a6a0dff Add TestAsyncDelayer 2018-10-15 11:13:12 -04:00
Cyberboss df32217ddc Add IPlatformIdentifier to SetupWizard 2018-10-15 10:56:24 -04:00
Cyberboss e538ccca77 Update PlatformIdentifier unit test 2018-10-15 10:48:48 -04:00
Cyberboss 8b9496166e Add TestPlatformIdentifier 2018-10-15 10:40:28 -04:00
Cyberboss f88b769647 Fix setup wizard tests 2018-10-05 13:01:12 -04:00
Cyberboss 60cbaa4892 Merge branch '758-StartTgs' of https://github.com/tgstation/tgstation-server into 758-StartTgs 2018-10-05 10:59:18 -04:00