Commit Graph
3310 Commits
Author SHA1 Message Date
Jordan Dominion d36e2f59f8 Add broadcasting support
- Bump appropriate versions
- Add DreamDaemon request field and permission bit.
- Add generic failure error code.
- Remove `ErrorCode` comment since they are being using in #1666.
- Fix bad interop return messages.
- Adjust DMAPI code to support broadcasts.
- Add tests.

Closes #138
2023-11-15 20:53:52 -05:00
Jordan Dominion bb06a2eff2 Forbid() before accessing instance here 2023-11-15 19:41:11 -05:00
tgstation-server ffa6299058 Merge branch 'master' into dev 2023-11-14 22:16:22 +00:00
Jordan Dominion 23f2a30fca Pin yarn@1.22.19
Workaround for https://github.com/yarnpkg/yarn/issues/9011
2023-11-14 12:26:59 -05:00
Jordan Dominion 69495abf01 Correct spacing 2023-11-14 11:22:18 -05:00
tgstation-server ac290fc6ff Merge branch 'master' into dev 2023-11-14 07:56:23 +00:00
Jordan Dominion 7af1d36085 Actually utilize CancellationToken in IProcess.GetCombinedOutput() 2023-11-13 19:32:51 -05:00
Jordan Dominion 89ce5a664e Correct IProcess documentation 2023-11-13 19:32:26 -05:00
Jordan Dominion 7ab9f35067 THAT'S NOT A FUCKING INSTANCE ID!!!
- Fix logic error in hub group mapping.
- Add regression unit test.

Fixes #1713
2023-11-13 18:16:41 -05:00
Jordan Dominion ea49ec0da2 A bunch of additional logging in pursuit of #1713 2023-11-13 16:06:28 -05:00
tgstation-server 52ffd3a3cb Merge branch 'master' into dev 2023-11-12 22:25:00 +00:00
Jordan Dominion 6b6d958536 Fix issue with StartedBy.Name not being set in jobs hub updates 2023-11-12 13:42:30 -05:00
Jordan Dominion 027b8db6bd Nuget package updates 2023-11-12 08:57:13 -05:00
Jordan Dominion 30293c3e39 Fix repository fetching possibly not fetching all tags 2023-11-11 21:31:07 -05:00
Jordan Dominion e68dc5b307 An uncaught exception was never a good idea 2023-11-06 17:46:05 -05:00
Jordan Dominion 72388f8035 Add necessary ObjectDisposedException to client 2023-11-06 17:44:45 -05:00
Jordan Dominion 549b65f03c Update nuget packages for API library 2023-11-06 16:57:24 -05:00
Jordan Dominion 9bea7686b2 Add automatic reconnect to client hubs 2023-11-06 16:39:23 -05:00
Jordan Dominion 52fc12b7a4 Fix JobsHubGroupMapper not being initialized 2023-11-06 16:19:40 -05:00
Jordan Dominion f71ac09722 Fix incorrect past tense 2023-11-05 16:42:33 -05:00
Jordan Dominion 3032955d25 Make this indentation make sense
Also add a missing colon
2023-11-05 16:41:42 -05:00
Jordan DominionandGitHub 399f19936a Fix grammar in auth docs 2023-11-05 16:35:45 -05:00
Jordan Dominion 32d1f0ae5e Add FAQ link for DMAPI validation failures 2023-11-05 13:13:01 -05:00
Jordan Dominion 337eb15a7f User connection updates should bypass the jobs hub message rate limiter 2023-11-05 12:12:15 -05:00
Jordan Dominion b79d02c77a Push an update of all active jobs to all clients when a new one connects
I know this is annoying in that we only need to target the connected client, but it's so much simpler this way. How big of an update can it even be if it's only including active jobs?
2023-11-05 11:56:43 -05:00
Jordan Dominion fa13869ea2 Ensure that SignalR works with the webpanel
- Fix issue with CORS preventing static file browsing.
- AllowCredentials in CORS. Switch from `AllowAnyOrigin` to a wildcard matching `Func` to bypass the CORS specification that says you can't do that.
- Add workaround for legacy SignalR `access_token` query string.
- Get token `nbf` from claims rather than through the composition root.
2023-11-05 11:23:47 -05:00
Jordan Dominion ed8453f08e Remove hub abort notifications
Because SignalR buffers messages, we can't guarantee these will be delivered before the connection is aborted.

We'll have to rely on the client not being pants-on-head.
2023-11-05 09:38:57 -05:00
Jordan Dominion 9044eb041d Properly document DeploymentActivation event 2023-11-05 00:01:03 -04:00
Jordan Dominion dd2e264477 Document new authentication pipeline
Also fix location of `TgsAuthorizeAttribute` .md documentation.
2023-11-05 00:01:02 -04:00
Jordan Dominion ec81fcdf41 Remove no-op call 2023-11-04 23:28:09 -04:00
Jordan Dominion edcd26e44f Allow GET /Jobs request spam again
Now that we have a hub as a better alternative, it should be less prevalent.
2023-11-04 23:27:57 -04:00
Jordan Dominion ebd09d7e86 Add JobCodes to strongly type jobs
- Default `0` for legacy jobs.
- Standardize job creation prior to registration.
- Add `RightsHelper.TypeToRight()`.
2023-11-04 21:12:25 -04:00
Jordan Dominion 85e1c0d5f1 Fix dotnet-ef version being out of sync 2023-11-04 20:47:41 -04:00
Jordan Dominion 189d594b4c Update nuget packages 2023-11-04 20:47:14 -04:00
Jordan Dominion 385771f477 Change this .OfType() to .Cast() 2023-11-04 20:41:59 -04:00
Jordan Dominion 6fb9ba6f37 Check registered jobs have instance and user IDs 2023-11-04 20:41:59 -04:00
Jordan Dominion 5b1e123e64 Add DeploymentActivation event 2023-11-04 20:41:56 -04:00
Jordan Dominion d85e2b8d36 Add SignalR
- 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.
2023-11-04 19:22:48 -04:00
Jordan Dominion fda26e1f15 Fix issue with DMAPI validation shutdown timeouts
- Increase grace period to 30s to avoid false positives.
2023-11-04 17:44:00 -04:00
Jordan Dominion 61cae1a02d Fix nested default Linux log directory 2023-11-04 17:40:54 -04:00
Jordan Dominion d851df8276 GET / with an Authorization header should fail if it's not valid 2023-11-02 23:10:34 -04:00
Jordan Dominion fb1aee74a1 Fix using spacing 2023-11-02 22:59:56 -04:00
Jordan Dominion 1b1a91361c Correct documentation for ApiContoller.NotFound() 2023-11-02 22:59:36 -04:00
Jordan Dominion 242c74955d Correct documentation for ApiHeaders.IsTokenAuthentication 2023-11-02 22:58:56 -04:00
Jordan Dominion ba0ccdff53 Set sleep_offline before del(world) 2023-10-31 23:16:19 -04:00
Jordan Dominion f58ea64c96 Remove spammy logging 2023-10-31 23:16:19 -04:00
Jordan Dominion e1d359d2f7 Change instance references to be a ulong 2023-10-31 23:16:18 -04:00
Jordan Dominion 29579a351d Fix JWT compliance issues.
- `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`.
2023-10-31 23:16:18 -04:00
Jordan Dominion e41e59a48a Remove unnecessary checks for non-existent PosixSystemIdentitys 2023-10-31 23:16:17 -04:00
Jordan Dominion dd8c8df35f Fix NotImplementedException errors on non-github/gitlab deployments 2023-10-31 23:16:17 -04:00