@openhub2/runtime-nitro
v0.0.1
Published
OpenHub runtime integration for Nitro
Downloads
66
Readme
@openhub2/runtime-nitro
OpenHub runtime integration for Nitro. Manages bindings and exposes proxy endpoint.
Installation
pnpm add @openhub2/runtime-nitroRequires nitropack as a peer:
pnpm add nitropackUsage
As Nitro Module
// nitro.config.ts
import { openhubModule } from '@openhub2/runtime-nitro'
export default defineNitroConfig({
modules: [openhubModule],
})Programmatic
import { createRuntime } from '@openhub2/runtime-nitro'
import { cloudflareProvider } from '@openhub2/provider-cloudflare'
const runtime = createRuntime()
runtime.registerProvider(cloudflareProvider)What It Does
- Registers provider — accepts any Dharma-conforming provider
- Exposes proxy endpoint —
/__openhub2/proxyfor remote requests - Injects bindings — into
event.context.openhub.bindings - Detects remote mode — via environment or config
Proxy Endpoint
In production, exposes /__openhub2/proxy that:
- Validates
x-openhub-secretheader - Parses
ProxyRequestfrom body - Executes against real bindings
- Returns
ProxyResponse
// Request
POST /__openhub2/proxy
x-openhub-secret: your-secret
{
"binding": "database",
"method": "prepare",
"args": ["SELECT * FROM users"]
}
// Response
{
"success": true,
"data": { ... }
}Context Injection
Bindings available in handlers:
export default defineEventHandler((event) => {
const { database, kv, blob } = event.context.openhub.bindings
const stmt = database.prepare('SELECT * FROM users')
const users = await stmt.all()
return users
})Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| OPENHUB_REMOTE | No | Enable remote mode (true/false) |
| OPENHUB_REMOTE_URL | In remote mode | Deployed worker URL |
| OPENHUB_REMOTE_SECRET | In remote mode | Shared auth secret |
License
Apache-2.0
