Prepare DAppNode Nexus SDK for public release - #6
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nexuspackage for applications embedding the SDKThe SDK verifies a fresh Gateway attestation before it returns a client or opens a local listener. Applications can mount its OpenAI-compatible handler, use its in-process HTTP client with the official OpenAI Go package, call chat/model methods directly, and inspect or export verification evidence. The DAppNode package remains an optional deployment of the same library and CLI.
The removed technical README has been preserved outside the repository for maintainers.
Public Go API
nexus.New(ctx, Config)— verifies the live Gateway before returningHandler()— mounts the SDK in an existing Go HTTP serverHTTPClient()— connects another OpenAI-compatible Go SDK without a TCP listenerChatCompletions()andModels()— direct OpenAI-compatible callsVerify(),Verification(), andEvidence()— fresh verification, status, and signed evidenceFlush()andClose()— persist local verification history when configuredThe CLI now consumes this same public API, so the embedded and standalone paths do not maintain separate security-sensitive compositions.
Validation
go test -race ./...go vet ./...go build ./...nexuspackageopenai-go/v3client compile and request throughHTTPClient()Live Gateway issue found
The current
https://nexus-api-tee.dappnode.comdeployment returns HTTP 500 from both/v1/modelsand authenticated chat completions. The same completion failure occurs through the embedded API and the standalone CLI, while the same API key succeeds against the hosted non-TEE Nexus endpoint. The opt-in live integration test records this accurately; end-to-end live inference should be rerun after the TEE Gateway is fixed.Publication sequence
maincommit, rerun its image build, and merge it.