PolyhydraGames.ScopedAccess
0.1.0
dotnet add package PolyhydraGames.ScopedAccess --version 0.1.0
NuGet\Install-Package PolyhydraGames.ScopedAccess -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PolyhydraGames.ScopedAccess" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PolyhydraGames.ScopedAccess" Version="0.1.0" />
<PackageReference Include="PolyhydraGames.ScopedAccess" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PolyhydraGames.ScopedAccess --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PolyhydraGames.ScopedAccess, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PolyhydraGames.ScopedAccess@0.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PolyhydraGames.ScopedAccess&version=0.1.0
#tool nuget:?package=PolyhydraGames.ScopedAccess&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PolyhydraGames.ScopedAccess
Reusable scoped-access and join-code contracts for PolyhydraGames apps.
This package captures the shared pattern used by ChannelCheevos access grants, Batocera resident-agent onboarding, future Kodi/desktop bridges, and player session joins:
join code or bootstrap request -> pending request -> approval queue -> scoped grant -> issued credential -> revoke/expire/audit
Tags
- polyhydra-games-scoped-access
- scoped
- access
- playback
- signalr
- docs
Design rules
- Human-friendly join codes, such as
dbc-z41, are locators/request handles, not long-term bearer secrets. - Runtime apps own controllers, UI, SignalR hubs, storage, and deployment.
- This package owns reusable DTOs, status transitions, scope normalization, join-code formatting, redaction, and small host-pluggable interfaces.
- Hosts define app-specific subject kinds and scopes, e.g.
batocera-agent,kodi-agent,player-session,kodi:playback:control.
Join-code UX and security model
- Join codes are short-lived locators for a pending request, not bearer secrets.
- A host should assign a namespace that matches the subject or surface, such as
dbc,batocera,kodi,cc, orweb. - Keep the join-code TTL short enough that it is useful for human handoff but not useful as a replay token after approval.
- Treat the namespace + code pair as the lookup key and rate-limit validation attempts; the format is intentionally human-sized, so the security boundary comes from expiry, uniqueness, and throttling rather than code length alone.
- Issue a separate high-entropy credential after approval. Do not reuse the join code as the issued credential, transport token, or session secret.
- Redact issued credentials in logs and UI summaries; if you need a display form, show a redacted credential or fingerprint, not the full value.
First consumer targets
- ChannelCheevos access-grant queue and Batocera-style resident-agent approvals.
- Future Kodi station-agent onboarding.
cc-desktopbridgeconnection approval.- Game/player join-code flows.
Consumer recipe
See docs/consumer-recipe.md for the PackageReference pattern and the host-owned endpoint/UI/storage split.
Build
dotnet test -p:RestoreIgnoreFailedSources=true
dotnet pack src/PolyhydraGames.ScopedAccess/PolyhydraGames.ScopedAccess.csproj -c Release -o artifacts/packages
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PolyhydraGames.ScopedAccess:
| Package | Downloads |
|---|---|
|
PolyhydraGames.Auth.Abstractions
OAuth contracts and token models shared by PolyhydraGames auth flows. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 15,300 | 6/11/2026 |