Add asset management migration

- UpdateGameAssetFields migration for new columns
- Added Description, IsRequired, UploadedAt to GameAssets
- Fixed nullable LocalPath and FileSha256

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-02-19 15:39:28 -08:00
parent 5d2c3bf880
commit f1d0d43cb7
40 changed files with 1873 additions and 17 deletions

View File

@@ -8,17 +8,28 @@
".NETCoreApp,Version=v8.0": {
"RR3CommunityServer/1.0.0": {
"dependencies": {
"BCrypt.Net-Next": "4.0.3",
"Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.11",
"Microsoft.AspNetCore.OpenApi": "8.0.24",
"Microsoft.EntityFrameworkCore": "8.0.11",
"Microsoft.EntityFrameworkCore.Design": "8.0.11",
"Microsoft.EntityFrameworkCore.Sqlite": "8.0.11",
"Microsoft.Extensions.Http": "10.0.3",
"Swashbuckle.AspNetCore": "6.6.2"
"Swashbuckle.AspNetCore": "6.6.2",
"System.IdentityModel.Tokens.Jwt": "8.2.1"
},
"runtime": {
"RR3CommunityServer.dll": {}
}
},
"BCrypt.Net-Next/4.0.3": {
"runtime": {
"lib/net6.0/BCrypt.Net-Next.dll": {
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.0.3.0"
}
}
},
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
@@ -27,6 +38,17 @@
}
}
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.11": {
"dependencies": {
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2"
},
"runtime": {
"lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": {
"assemblyVersion": "8.0.11.0",
"fileVersion": "8.0.1124.52116"
}
}
},
"Microsoft.AspNetCore.OpenApi/8.0.24": {
"dependencies": {
"Microsoft.OpenApi": "1.6.14"
@@ -513,6 +535,71 @@
}
}
},
"Microsoft.IdentityModel.Abstractions/8.2.1": {
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "8.2.1.0",
"fileVersion": "8.2.1.51115"
}
}
},
"Microsoft.IdentityModel.JsonWebTokens/8.2.1": {
"dependencies": {
"Microsoft.IdentityModel.Tokens": "8.2.1"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
"assemblyVersion": "8.2.1.0",
"fileVersion": "8.2.1.51115"
}
}
},
"Microsoft.IdentityModel.Logging/8.2.1": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "8.2.1"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "8.2.1.0",
"fileVersion": "8.2.1.51115"
}
}
},
"Microsoft.IdentityModel.Protocols/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.Logging": "8.2.1",
"Microsoft.IdentityModel.Tokens": "8.2.1"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Protocols.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.Protocols": "7.1.2",
"System.IdentityModel.Tokens.Jwt": "8.2.1"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.IdentityModel.Tokens/8.2.1": {
"dependencies": {
"Microsoft.IdentityModel.Logging": "8.2.1"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "8.2.1.0",
"fileVersion": "8.2.1.51115"
}
}
},
"Microsoft.OpenApi/1.6.14": {
"runtime": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
@@ -779,6 +866,18 @@
"fileVersion": "10.0.326.7603"
}
}
},
"System.IdentityModel.Tokens.Jwt/8.2.1": {
"dependencies": {
"Microsoft.IdentityModel.JsonWebTokens": "8.2.1",
"Microsoft.IdentityModel.Tokens": "8.2.1"
},
"runtime": {
"lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": {
"assemblyVersion": "8.2.1.0",
"fileVersion": "8.2.1.51115"
}
}
}
}
},
@@ -788,6 +887,13 @@
"serviceable": false,
"sha512": ""
},
"BCrypt.Net-Next/4.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-W+U9WvmZQgi5cX6FS5GDtDoPzUCV4LkBLkywq/kRZhuDwcbavOzcDAr3LXJFqHUi952Yj3LEYoWW0jbEUQChsA==",
"path": "bcrypt.net-next/4.0.3",
"hashPath": "bcrypt.net-next.4.0.3.nupkg.sha512"
},
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,
@@ -795,6 +901,13 @@
"path": "humanizer.core/2.14.1",
"hashPath": "humanizer.core.2.14.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9KhRuywosM24BPf1R5erwsvIkpRUu1+btVyOPlM3JgrhFVP4pq5Fuzi3vjP01OHXfbCtNhWa+HGkZeqaWdcO5w==",
"path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.11",
"hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.11.nupkg.sha512"
},
"Microsoft.AspNetCore.OpenApi/8.0.24": {
"type": "package",
"serviceable": true,
@@ -991,6 +1104,48 @@
"path": "microsoft.extensions.primitives/10.0.3",
"hashPath": "microsoft.extensions.primitives.10.0.3.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8sMlmHhh5HdP3+yCSCUpJpN1yYrJ6J/V39df9siY8PeMckRMrSBRL/TMs/Jex6P1ly/Ie2mFqvhcPHHrNmCd/w==",
"path": "microsoft.identitymodel.abstractions/8.2.1",
"hashPath": "microsoft.identitymodel.abstractions.8.2.1.nupkg.sha512"
},
"Microsoft.IdentityModel.JsonWebTokens/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Oo0SBOzK6p3YIUcc1YTJCaYezVUa5HyUJ/AAB35QwxhhD6Blei5tNjNYDR0IbqHdb5EPUIiKcIbQGoj2b1mIbg==",
"path": "microsoft.identitymodel.jsonwebtokens/8.2.1",
"hashPath": "microsoft.identitymodel.jsonwebtokens.8.2.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EgSEAtBoWBynACdhKnMlVAFGGWqOIdmbpW7Vvx2SQ7u7ogZ50NcEGSoGljEsQoGIRYpo0UxXYktKcYMp+G/Bcg==",
"path": "microsoft.identitymodel.logging/8.2.1",
"hashPath": "microsoft.identitymodel.logging.8.2.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Protocols/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==",
"path": "microsoft.identitymodel.protocols/7.1.2",
"hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512"
},
"Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==",
"path": "microsoft.identitymodel.protocols.openidconnect/7.1.2",
"hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oQeLWCATuVXOCdIvouM4GG2xl1YNng+uAxYwu7CG6RuW+y+1+slXrOBq5csTU2pnV2SH3B1GmugDf6Jv/lexjw==",
"path": "microsoft.identitymodel.tokens/8.2.1",
"hashPath": "microsoft.identitymodel.tokens.8.2.1.nupkg.sha512"
},
"Microsoft.OpenApi/1.6.14": {
"type": "package",
"serviceable": true,
@@ -1116,6 +1271,13 @@
"sha512": "sha512-IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A==",
"path": "system.diagnostics.diagnosticsource/10.0.3",
"hashPath": "system.diagnostics.diagnosticsource.10.0.3.nupkg.sha512"
},
"System.IdentityModel.Tokens.Jwt/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GVQmbjr2N8awFWPTWyThLxgKnFINObG1P+oX7vFrBY8um3V7V7Dh3wnxaGxNH6v6lSTeVQrY+SaUUBX9H3TPcw==",
"path": "system.identitymodel.tokens.jwt/8.2.1",
"hashPath": "system.identitymodel.tokens.jwt.8.2.1.nupkg.sha512"
}
}
}

View File

@@ -5,5 +5,24 @@
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
"AllowedHosts": "*",
"Jwt": {
"Secret": "RR3CommunityServer_SecureJwtSecret_ChangeThisInProduction_MinimumLength32Characters",
"Issuer": "RR3CommunityServer",
"Audience": "RR3Community",
"ExpiryDays": 30
},
"AssetsBasePath": "Assets/downloaded",
"CustomAssetsPath": "Assets/custom",
"ModsPath": "Assets/mods",
"ServerSettings": {
"AllowSelfSignedCerts": true,
"EnableAssetDownloads": true,
"FreeGoldPurchases": true,
"UnlockAllCars": false,
"UnlimitedCurrency": false,
"EnableModding": true,
"MaxCustomCarUploadSizeMB": 100,
"MaxCustomTrackUploadSizeMB": 200
}
}

Binary file not shown.