hyperlight-dev / hyperlight-dev/hyperlight-sandbox

.NET SDK binding for register_credential

Open
#137 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
73
Forks
7
Avg merge
2d 2h
Merged PRs (30d)
23

Description

Follow-up from #89 (Scoped credentials for outgoing HTTP).

The .NET SDK has no FFI surface for register_credential yet (Python is done). A faithful binding must:

  • Marshal a C# delegate across the C-ABI as the resolver callback.
  • Keep a GC root on the Func<string> for the sandbox's lifetime.
  • Map any .NET exception thrown from the delegate back to Rust as the redacted Err(String) — without letting the exception message ride across the boundary.

A constrained first cut (FFI accepting only a static token, mapped onto CredentialEntry::with_static_resolver) is feasible in isolation, but was deliberately deferred so the .NET surface can be designed around the callback shape from day one rather than a static-only stub that would later need a breaking rename.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing Python binding and issue #89, then trace register_credential and CredentialEntry::with_static_resolver. Define the .NET callback shape, lifetime handling, and redacted exception mapping; done means the .NET FFI surface supports resolver callbacks without exposing exception messages across the C ABI.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, rust
Domain
api, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.