@molecule/api-activity-http
Provider bond · activity · API (Node) · v1.0.2 · Apache-2.0
Generic HTTP activity sink — POSTs activity events to a configured ingest endpoint
npm install @molecule/api-activity-httpnpm · Source on GitHub · Implements @molecule/api-activity
How it works
@molecule/api-activity-http is a provider bond on the API (Node) side: it implements the activity core interface (@molecule/api-activity) with a concrete vendor or library behind it.
Your code calls the core; you wire this provider once at startup. Swapping vendors later is one line in that wiring, not a rewrite.
import { setSink } from '@molecule/api-activity'
import { createHttpSink } from '@molecule/api-activity-http'
setSink(createHttpSink({ url: 'https://my-app.example/v1/activity' }))Works with: @molecule/api-activity, @molecule/api-logger, @molecule/api-secrets
Secrets: MOLECULE_ACTIVITY_URL (optional)
Reference
Generic HTTP activity sink.
POSTs captured activity events to a configured ingest endpoint (the url
option or the MOLECULE_ACTIVITY_URL env var). No endpoint is assumed — when
none is configured the sink no-ops, so an unconfigured consumer never
silently phones home. Best-effort — never throws on failure.
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
Quick Start
import { setSink } from '@molecule/api-activity'
import { createHttpSink } from '@molecule/api-activity-http'
setSink(createHttpSink({ url: 'https://my-app.example/v1/activity' }))
Type
provider
Installation
npm install @molecule/api-activity-http @molecule/api-activity @molecule/api-logger @molecule/api-secrets
API
Interfaces
HttpActivitySinkOptions
Options for the HTTP activity sink.
interface HttpActivitySinkOptions {
/**
* The activity endpoint URL. Falls back to the `MOLECULE_ACTIVITY_URL` env
* var. There is no built-in default — when neither is set the sink no-ops, so
* an unconfigured generic consumer never POSTs to an assumed destination.
*/
url?: string
/**
* The app's runtime vault token, sent as a bearer token.
* Defaults to the `MOLECULE_VAULT_TOKEN` env var.
*/
token?: string
/**
* The app id for the configured endpoint, sent as the `X-Molecule-App-Id`
* header (omitted when unset). Defaults to the `MOLECULE_APP_ID` env var.
*/
appId?: string
}
Functions
createHttpSink(options)
Creates an HTTP activity sink that POSTs each event to the configured ingest endpoint.
Best-effort: an unconfigured endpoint is skipped (debug-logged), and a failed
POST (or a thrown fetch) is caught and logged, never rethrown, so capture
providers can record unconditionally.
function createHttpSink(options?: HttpActivitySinkOptions): ActivitySink
options— Endpoint URL, runtime token, and app id. Each falls back to its correspondingMOLECULE_*env var, resolved per-request. With no URL configured the sink does nothing — it never assumes a destination.
Returns: An ActivitySink backed by an HTTP POST.
Constants
provider
Default HTTP activity sink instance, configured from environment variables.
const provider: ActivitySink
activityHttpSecretDefinitions
Secret definitions required by the HTTP activity sink bond.
const activityHttpSecretDefinitions: SecretDefinition[]
Core Interface
Implements @molecule/api-activity interface.
Bond Wiring
Setup function to register this provider with the core interface:
import { setSink } from '@molecule/api-activity'
import { provider } from '@molecule/api-activity-http'
export function setupActivityHttp(): void {
setSink(provider)
}
Injection Notes
Requirements
Peer dependencies:
@molecule/api-activity^1.0.1@molecule/api-logger^1.0.1@molecule/api-secrets^1.0.1
Environment Variables
MOLECULE_ACTIVITY_URL(optional) — molecule.dev activity capture URL- Provisioned automatically in molecule.dev sandboxes — manual setup only needed outside the platform.
- Setup: Endpoint for captured side effects (emails/SMS/webhooks) in molecule.dev sandboxes.
Runtime Dependencies
@molecule/api-activity@molecule/api-logger@molecule/api-secrets