Skip to content
This repository was archived by the owner on Oct 1, 2026. It is now read-only.

feat: introduce OpenCamInterop event contracts - #37

Merged
elkampu merged 1 commit into
mainfrom
feat/open-cam-interop
Sep 4, 2026
Merged

elkampu merged 1 commit into
mainfrom
feat/open-cam-interop

Conversation

@elkampu

@elkampu elkampu commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a packable .NET 8 OpenCamInterop alpha library with validated CloudEvents 1.0 contracts
  • normalize offline Frigate object messages and ONVIF notifications through bounded, pure adapters
  • add versioned JSON Schemas, synthetic fixtures, and an IPCamLapse read-only CloudEvents batch export
  • document a fixture-driven EventLab direction and contribution gates without renaming or splitting the repository

Security and privacy

  • adapters make no network connections and accept payloads capped at 1 MiB
  • JSON duplicate members are rejected; XML DTDs/external resolution and excessive nesting/counts are rejected
  • Frigate output is allowlisted, generic ONVIF values are redacted, and ONVIF identifiers are opaque
  • IPCamLapse export omits credentials, URLs, storage paths, and raw diagnostic messages

Verification

  • dotnet restore IPCamLapse.sln --locked-mode
  • dotnet build IPCamLapse.sln --configuration Release --no-restore (0 warnings, 0 errors)
  • dotnet test IPCamLapse.sln --configuration Release --no-build --no-restore (90 passed)
  • dotnet format IPCamLapse.sln --verify-no-changes --no-restore
  • dotnet list IPCamLapse.sln package --vulnerable --include-transitive --no-restore (none found)
  • dotnet publish IPCamLapse/IPCamLapse.csproj --configuration Release --no-restore
  • dotnet pack OpenCamInterop/OpenCamInterop.csproj --configuration Release --no-restore

The local Docker daemon was unavailable, so the existing PR container workflow is the independent Dockerfile check.

Honest limitations

This is an alpha interoperability contract backed by synthetic fixtures. It is not an ONVIF conformance suite, has no physical-device coverage yet, and makes no adoption claim. Capture/inspect/replay tooling is roadmap work rather than part of this PR.

@elkampu
elkampu merged commit c08b33d into main Sep 4, 2026
6 checks passed
@KalyteraSystems
KalyteraSystems deleted the feat/open-cam-interop branch October 1, 2026 06:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant