Remove duplicate Vimeo DI registration; use NimblePros.Vimeo AddVimeoServices and upgrade package
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start in src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs and Program.cs at the AddInfrastructureServices(...) call (~line 92) and AddVimeoServices (~line 148), plus the commented Autofac factory at line 45. Delete the local extension file, drop the RegisterVimeoServicesDependencies call and any now-unused vimeoToken parameter, then build and smoke test the admin video flows (chunked upload, description update, delete, details, oEmbed). Done means one registration path and no duplicate named clients or headers; the 2.2.1 package bump stays blocked on the NuGet API key.
Written by the indexing model from the issue text.
Description
Background
When Autofac was removed (#1358), devBetter added its own IServiceCollection version of RegisterVimeoServicesDependencies in src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs. NimblePros.Vimeo already ships the equivalent registration, services.AddVimeoServices(token). It wasn't documented, which is how NimblePros/NimblePros.Vimeo#16 came about. NimblePros/NimblePros.Vimeo#19 adds the documentation and tests.
devBetter currently runs both registrations:
Program.cs:92→AddInfrastructureServices(...)→ the localservices.RegisterVimeoServicesDependencies(vimeoToken)Program.cs:148→builder.Services.AddVimeoServices(vimeoSettings.Token)
Effects of the duplicate registration
- Named
HttpClients are configured twice.VimeoApi,VimeoOEmbedandVimeoTusApiare each registered by both methods, and both configure actions run. Default headers are added twice:Accepton every client, andTus-Resumableon the Tus client. - Two
ClientApiConfigurationssingletons. The last one registered wins, which is the one fromAddVimeoServices. The local configuration (default JSON settings, token on the Tus client) is effectively dead code. - The tus services are registered twice.
ISleepService,IUploadVideoSessionServiceandIUploadVideoTusServiceare each registered twice with the same implementation. This is harmless, but it's noise. AuthHeaderHandlerinVimeoServiceCollectionExtensions.csis never used. The bearer token is actually added byAddVimeoServices, on theVimeoApiclient only.
AddVimeoServices on its own registers everything devBetter needs:
- every Vimeo service, such as
GetVideoService,GetOEmbedVideoServiceandUploadVideoChunkService; - the NimblePros.ApiClient HTTP services;
- the three named clients, with the token attached to
VimeoApi; - the tus services and logging.
Tasks
- Delete
src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs, including the unusedAuthHeaderHandler. - Remove
services.RegisterVimeoServicesDependencies(vimeoToken);fromAddInfrastructureServices, along with thevimeoTokenparameter if nothing else uses it. KeepAddVimeoServices(vimeoSettings.Token)inProgram.cs. - Remove the commented-out
AutofacServiceProviderFactoryline inProgram.cs:45. - Upgrade
NimblePros.Vimeofrom 2.1.2 to 2.2.1 once it is published (see below). The new version:- adds net10.0 and net11.0 targets (devBetter targets net11.0);
- updates dependencies;
- pins a patched
Microsoft.AspNetCore.WebUtilities(NimblePros.ApiClient 2.2.0 pulls in 9.0.4, which is affected by GHSA-x33c-w48q-qrgc); - makes the
VimeoTusApiclient set its base address andAcceptheader.
- Smoke test the admin video flows: chunked upload (
UploadChunkEndpoint), update description, delete, video details and oEmbed.
Behavior notes
Removing the local registration shouldn't change runtime behavior, apart from dropping the duplicated default headers:
- The JSON settings from
AddVimeoServices(NullValueHandling.Ignore) already win today. - The Tus client already sends no bearer token. Tus upload links are signed, so it isn't needed.
The package still depends on Autofac transitively, because AutofacExtensions ships in NimblePros.Vimeo. That's tracked as a possible follow-up there.
Blocker for the package upgrade
The NimblePros.Vimeo publish workflow is failing. nuget push returns 403: The specified API key is invalid, has expired, or does not have permission, so 2.2.0 was never published and nuget.org still has 2.1.2. The NUGET_API_KEY secret in NimblePros/NimblePros.Vimeo needs to be regenerated before the upgrade task can be done. The registration cleanup tasks don't depend on the upgrade and can be done now.
- Dominant language
- C#
- Stars
- 157
- Forks
- 59
- Avg merge
- 3h 12m
- Merged PRs (30d)
- 4
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DevBetterCom/DevBetterWeb
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
DevBetterCom/DevBetterWeb#1472 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
DevBetterCom/DevBetterWeb#1393 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DevBetterCom/DevBetterWeb#1392 ·
Maintainers usually reply within 1 day
-
.NET enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
DevBetterCom/DevBetterWeb#1380 ·
Maintainers usually reply within 1 day
-
New Members Subscription Should Not Have End DatePossibly taken @ShadyNagy claimed this 585 days ago. Openbug
DevBetterCom/DevBetterWeb#1334 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
All issues in DevBetterCom/DevBetterWeb
Similar issues
-
[中] 更新器下载缓存从不清理Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NimblePros/eShopOnWeb#333 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Natvs/Nt.Automaton#33 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100