PolyhydraGames.Streaming.Interfaces 4.0.0.9

dotnet add package PolyhydraGames.Streaming.Interfaces --version 4.0.0.9
                    
NuGet\Install-Package PolyhydraGames.Streaming.Interfaces -Version 4.0.0.9
                    
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.Streaming.Interfaces" Version="4.0.0.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PolyhydraGames.Streaming.Interfaces" Version="4.0.0.9" />
                    
Directory.Packages.props
<PackageReference Include="PolyhydraGames.Streaming.Interfaces" />
                    
Project file
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.Streaming.Interfaces --version 4.0.0.9
                    
#r "nuget: PolyhydraGames.Streaming.Interfaces, 4.0.0.9"
                    
#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.Streaming.Interfaces@4.0.0.9
                    
#: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.Streaming.Interfaces&version=4.0.0.9
                    
Install as a Cake Addin
#tool nuget:?package=PolyhydraGames.Streaming.Interfaces&version=4.0.0.9
                    
Install as a Cake Tool

Api.Streaming

Streaming contracts, Postgres runtime wiring, SQL migration/reference code, and test harnesses for Polyhydra Games.

Tags

  • api
  • api-streaming
  • dotnet
  • streaming
  • docs
  • database

Repo Shape

  • Interfaces/ contract project
  • SQL/ migration/reference SQL Server implementation and scripts
  • Postgres/ active PostgreSQL implementation
  • Migration/ database migration tooling
  • Test/ unit tests and integration harness

Current Focus

  • keep the active runtime on Postgres
  • preserve contract names for downstream consumers
  • keep the migration and rebuild docs current

Useful Commands

dotnet test StreamingAPI.sln
dotnet test Test/Integration/PolyhydraGames.Streaming.IntegrationTests.csproj

The default test path is portable to an Api.Streaming checkout and retains the portable repository-owned Migration, SQL contract, and Postgres resolver/factory tests. Live inventory verification and the specific legacy SQL/Postgres tests that directly import Channel Cheevos types are deliberately opt-in and require the parity environment:

dotnet test StreamingAPI.sln -p:EnableChannelCheevosParity=true

Configuration and secret handling

Tracked configuration is intentionally non-secret. Copy the variable names from .env.example into protected deployment or local environment configuration; nested ASP.NET configuration keys use double underscores, for example ConnectionStrings__PostgresDev. The Test/appsettings.json values are deterministic local-only fixture values and must not be promoted to a deployed environment.

Data-protection keys and test-result output are generated runtime artifacts and are ignored by Git. Run scripts/scan-secrets.sh before publishing changes; the same Gitleaks check runs on pull requests and pushes to main.

Pull-request validation uses only GitHub-hosted runners, read-only repository access, and public NuGet restore. Before checkout, it installs the parser from an ephemeral, exact version-and-hash-pinned requirement; it then checks out the immutable pull-request head SHA and runs the verifier and its tests in Python isolated mode so checkout-local modules cannot shadow the trusted parser. Private runners and package credentials are limited to the trusted main container workflow; scripts/verify-ci-trust-policy.py structurally parses both workflows and enforces exact event, permission, action, checkout, runner, credential, and artifact-ingress boundaries.

ci.yml's own "Verify CI trust policy" step runs from the pull request's own checkout, so a PR could in principle edit the verifier (or the workflow files it reads) alongside itself and make that check pass trivially -- it is fast local feedback, not the authoritative enforcement. .github/workflows/trust-policy-gate.yml is that enforcement: triggered on pull_request_target, it checks out the verifier from the trusted main branch (never the PR head), fetches the PR's workflow files read-only through the GitHub API via CI_WORKFLOW_PATH/CONTAINER_WORKFLOW_PATH, and validates that text without ever executing anything from the PR.

Publishing

interfaces-publish.yml runs on pushes to main and manual dispatches. Its package job checks out the source, restores, builds, tests, and packs exactly one PolyhydraGames.Streaming.Interfaces package. It sets the version to <VersionPrefix>.<github.run_number> and checks that this version is newer than the latest version listed by nuget.org. The package crosses to publish-nuget-org through the run-scoped Actions cache. Only publish-nuget-org receives id-token: write; that job has no checkout and uses NuGet Trusted Publishing with GitHub OIDC to push the exact package file. The workflow uses two separate self-hosted runner roles: package uses nuget-api-streaming, while publish-nuget-org and publish-mirrors use nuget-api-streaming-publish. The publish-only runner is provisioned by lancer1977/homelab-gitops#1028 and #1029. This keeps the host receiving the OIDC token away from build and test code, so compromised build code cannot persist on or reach the token-bearing host. All three publishing jobs install .NET 10.0.x in-job using pinned actions. package and publish-mirrors use ${{ runner.tool_cache }}/dotnet; the OIDC-enabled publish-nuget-org uses the fresh per-job ${{ runner.temp }}/dotnet location. Both publish jobs first clear the retained self-hosted workspace and then restore only the run-scoped package cache. The NuGet version guard uses isolated Python (python3 -I) before OIDC login. The optional GitHub Packages mirror push runs after nuget.org publishing in a non-OIDC job from the same cache. Its result does not affect the primary nuget.org publication. Pull requests never publish. If several green default-branch runs queue in a burst, GitHub may coalesce pending runs; the newest green commit of a burst is published.

Configure a nuget.org Trusted Publishing policy with owner lancer1977, repository lancer1977/Api.Streaming, and workflow file interfaces-publish.yml.

Documentation

Product 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 was computed.  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 is compatible.  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.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on PolyhydraGames.Streaming.Interfaces:

Package Downloads
PolyhydraGames.OAuth.Core

Package Description

PolyhydraGames.Twitch

Twitch integration library used by ChannelCheevos and related services — wraps TwitchLib.Api, TwitchLib.Client, and TwitchLib.EventSub for internal Polyhydra services.

PolyhydraGames.Spotify

.NET client integration helpers for the Spotify Web API, including OAuth, PKCE, retry handling, and playback and catalog lookups.

PolyhydraGames.Streaming.Postgres

Package Description

OAuth.Core

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0.9 66 10/15/2026
3.1.16312.8 3,985 10/5/2026
3.1.16312.7 3,108 10/5/2026
3.1.16312.6 87 10/5/2026
3.1.16312.5 86 10/5/2026
3.1.16312.4 83 10/5/2026
3.1.16312.3 2,235 10/2/2026
3.1.16312.1 4,190 9/30/2026
3.1.16310 12,914 6/7/2026
3.1.16249 123 6/7/2026
3.1.16246 131 6/7/2026
3.1.16096 5,084 5/9/2026
3.0.16089 126 5/9/2026
3.0.15999 271 5/4/2026
3.0.15914 119 5/4/2026
3.0.15913 294 4/21/2026
3.0.15805 411 4/3/2026
3.0.15803 128 4/3/2026
3.0.15800 133 4/3/2026
3.0.15783 190 4/1/2026
Loading failed