OpenHub runtime integration for Nitro
npm install @openhub2/runtime-nitroOpenHub runtime integration for Nitro. Manages bindings and exposes proxy endpoint.
``bash`
pnpm add @openhub2/runtime-nitro
Requires nitropack as a peer:
`bash`
pnpm add nitropack
`typescript
// nitro.config.ts
import { openhubModule } from '@openhub2/runtime-nitro'
export default defineNitroConfig({
modules: [openhubModule],
})
`
`typescript
import { createRuntime } from '@openhub2/runtime-nitro'
import { cloudflareProvider } from '@openhub2/provider-cloudflare'
const runtime = createRuntime()
runtime.registerProvider(cloudflareProvider)
`
1. Registers provider — accepts any Dharma-conforming provider
2. Exposes proxy endpoint — /__openhub2/proxy for remote requestsevent.context.openhub.bindings
3. Injects bindings — into
4. Detects remote mode — via environment or config
In production, exposes /__openhub2/proxy that:
- Validates x-openhub-secret headerProxyRequest
- Parses from bodyProxyResponse
- Executes against real bindings
- Returns
`typescript
// Request
POST /__openhub2/proxy
x-openhub-secret: your-secret
{
"binding": "database",
"method": "prepare",
"args": ["SELECT * FROM users"]
}
// Response
{
"success": true,
"data": { ... }
}
`
Bindings available in handlers:
`typescript`
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
})
| 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 |
|
Apache-2.0