You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Track the Reborn cutover / feature-parity blocker for preserving and generalizing IronClaw V1's brokered HTTP credential-injection model.
This is not a post-landing nice-to-have. We should not claim Reborn is ready for user-visible cutover if it regresses V1's credential-injection behavior.
This issue does not have to block every internal substrate PR into reborn-integration, but it must block final Reborn product cutover / feature parity unless explicitly deferred by reviewers with a documented replacement or scope decision.
The core question:
How do we carry forward V1's host-boundary HTTP credential injection into Reborn,
then extend it to more runtime lanes and higher-risk credential use cases without
letting agents/runtimes hold replayable long-lived secrets?
Important clarification: V1 already has this pattern
IronClaw V1 already does meaningful brokered credential injection for HTTP paths. Reborn must preserve this capability or feature parity regresses.
Current V1 evidence:
src/tools/wasm/credential_injector.rs
Documents host-boundary injection.
Explicitly says WASM tools never see actual credential values.
Maps stored secrets to Authorization headers, custom headers, query params, and URL/path placeholders.
src/tools/builtin/http.rs
Uses SharedCredentialRegistry to match credentials by target host.
Auto-injects registered credentials after pre-injection leak scanning.
Blocks manual Authorization, x-api-key, api-key, and x-auth-token headers for hosts with registered credentials.
Records replay/interceptor request snapshots from pre-injection URL/headers so fixtures do not store injected credentials.
Strips sensitive response headers before returning data to the model.
Scans response bodies for credential-like leaks.
DNS-pins and blocks private/internal IP targets.
Revalidates redirects / blocks unsafe redirects.
src/tools/wasm/wrapper.rs
Resolves host credentials before WASM execution.
Injects host credentials inside the WASM HTTP host function by matching URL host patterns.
Redacts injected values from errors and interceptor records.
Uses a redacted Debug implementation for decrypted host credential structs.
src/auth/mod.rs
Refreshes OAuth access tokens before credential injection.
Supports an OAuth refresh-proxy path with SSRF validation.
src/worker/proxy_llm.rs
Proxies worker LLM calls through the orchestrator so workers do not hold LLM API keys.
So the cutover bar is:
Reborn must preserve V1's host-boundary HTTP credential-injection safety properties
for equivalent HTTP/WASM/provider flows before those flows replace V1 behavior.
Why this blocks feature parity
Without this work, Reborn risks regressing from V1 in two ways:
Security regression
V1 can inject credentials at the host HTTP boundary without exposing raw values to WASM/model-visible inputs.
A Reborn path that only uses InjectSecretOnce -> SecretMaterial could hand replayable credentials to a runtime or adapter.
Product regression
Existing HTTP/WASM/skill credential mappings and OAuth refresh flows depend on host-side credential injection.
Reborn must offer an equivalent or better path for those integrations before cutover.
One-shot leases are still valuable, but they do not replace host-boundary credential injection:
one-shot lease = when may the host access secret material?
brokered injection = can the runtime use the credential without ever seeing it?
Current Reborn gap
Pieces Reborn already has or is landing:
scoped encrypted secret storage;
one-shot secret leases;
credential account metadata;
scoped network policy;
hardened HTTP egress;
authorization/approval/run-state substrate;
obligations such as InjectSecretOnce, ApplyNetworkPolicy, RedactOutput, and EnforceOutputLimit;
agent/runtime makes normal HTTP request through a local gateway/proxy
-> gateway matches host/path/method/policy
-> gateway injects real credential
-> agent/runtime never sees the real secret
This resembles IronClaw V1's host-boundary HTTP credential injection, but external proxy/gateway patterns may help cover arbitrary runtimes that IronClaw does not fully control.
Open design questions
Please discuss and refine. These are intentionally left open.
Port V1 as-is first, or redesign?
Should Reborn first port V1's SharedCredentialRegistry + host-mediated HTTP injection semantics as a compatibility baseline?
Which V1 safety properties are mandatory to preserve exactly?
Which V1 behaviors should be tightened while porting?
Native vs external broker
Should IronClaw implement a native broker crate/service?
Should it integrate with Agent Vault / OneCLI-style external brokers?
Do we need an abstraction that supports both?
Proxy vs host-mediated request API
Should brokered access primarily be HTTPS_PROXY/local gateway for arbitrary runtimes?
Should Reborn keep a host-mediated request API for WASM/first-party runtimes?
Which model is easier to secure and test?
Short-lived provider tokens vs injected long-lived API keys
When providers support OAuth/token exchange/downscoping, should the broker mint short-lived tokens?
When providers only support long-lived API keys, is target-scoped host/proxy injection enough?
How do we represent provider capabilities?
Where does this live?
New crate such as ironclaw_credential_broker?
Composition in ironclaw_host_runtime over ironclaw_secrets + ironclaw_network?
Extension to Reborn runtime egress planning?
Separate process/sidecar owned by production composition?
Runtime lane behavior
WASM can use host-mediated HTTP imports. How should brokered sessions plug in?
Script/CLI tools may use arbitrary HTTP libraries. Do they require a container/VM where egress is locked to the broker?
MCP may be stdio, HTTP, or SSE. How does brokered egress work for each transport?
Direct secret material escape hatch
Should direct InjectSecretOnce -> SecretMaterial remain only for local-dev/legacy/first-party cases?
Purpose
Track the Reborn cutover / feature-parity blocker for preserving and generalizing IronClaw V1's brokered HTTP credential-injection model.
This is not a post-landing nice-to-have. We should not claim Reborn is ready for user-visible cutover if it regresses V1's credential-injection behavior.
This issue does not have to block every internal substrate PR into
reborn-integration, but it must block final Reborn product cutover / feature parity unless explicitly deferred by reviewers with a documented replacement or scope decision.The core question:
Important clarification: V1 already has this pattern
IronClaw V1 already does meaningful brokered credential injection for HTTP paths. Reborn must preserve this capability or feature parity regresses.
Current V1 evidence:
src/tools/wasm/credential_injector.rssrc/tools/builtin/http.rsSharedCredentialRegistryto match credentials by target host.Authorization,x-api-key,api-key, andx-auth-tokenheaders for hosts with registered credentials.src/tools/wasm/wrapper.rsDebugimplementation for decrypted host credential structs.src/auth/mod.rssrc/worker/proxy_llm.rsSo the cutover bar is:
Why this blocks feature parity
Without this work, Reborn risks regressing from V1 in two ways:
Security regression
InjectSecretOnce -> SecretMaterialcould hand replayable credentials to a runtime or adapter.Product regression
One-shot leases are still valuable, but they do not replace host-boundary credential injection:
Current Reborn gap
Pieces Reborn already has or is landing:
InjectSecretOnce,ApplyNetworkPolicy,RedactOutput, andEnforceOutputLimit;Current gap:
SharedCredentialRegistry+ host-mediated HTTP credential injection is not yet represented as a Reborn contract/composition path.InjectSecretOncecan still materializeSecretMaterialunless policy forbids direct material injection.Tentative Reborn target model
Treat these as discussion starters, not final design.
Credential access modes
or a richer split:
Credential-use session / injection context
A credential-use session, permit, or host-mediated injection context could be bound to:
Runtime flow
Risk-tiered use
This should not be framed as WASM or HTTP proxy. They are orthogonal:
Possible policy direction:
Relevant prior art
These projects are relevant references, not predetermined dependencies:
Useful pattern from both:
This resembles IronClaw V1's host-boundary HTTP credential injection, but external proxy/gateway patterns may help cover arbitrary runtimes that IronClaw does not fully control.
Open design questions
Please discuss and refine. These are intentionally left open.
Port V1 as-is first, or redesign?
SharedCredentialRegistry+ host-mediated HTTP injection semantics as a compatibility baseline?Native vs external broker
Proxy vs host-mediated request API
HTTPS_PROXY/local gateway for arbitrary runtimes?Short-lived provider tokens vs injected long-lived API keys
Where does this live?
ironclaw_credential_broker?ironclaw_host_runtimeoverironclaw_secrets+ironclaw_network?Runtime lane behavior
Direct secret material escape hatch
InjectSecretOnce -> SecretMaterialremain only for local-dev/legacy/first-party cases?Target matching and redirects
Request/response privacy
Credential account UX
Approvals and previews
Non-HTTP credentials
Testing and proof
Acceptance criteria for design / cutover readiness
Acceptance criteria for implementation / feature parity
evil.comreceives no credential and/or is blocked before network effect.SecretMaterialinjection is disabled for hosted/high-risk profiles unless an explicit policy exception exists.Non-goals for the internal substrate PRs
Related issues