@autopilotstartup/log-sdk
v0.3.0
Published
Cross-runtime TypeScript SDK for Autopilot Log Server
Readme
@autopilotstartup/log-sdk
Cross-runtime TypeScript client for an Autopilot Log Server deployment. The package has no runtime dependencies and provides target-specific entry points without duplicating the logging protocol.
Install
npm install @autopilotstartup/log-sdkBrowser or React Native
Client loggers use the restricted /client-logs endpoint and expose only
warn and error. The application must be registered by the Log Server.
import { createClientLogger } from '@autopilotstartup/log-sdk/browser'
const logger = createClientLogger({
applicationId: 'my-web-app',
apiKey: process.env.PUBLIC_LOG_INGESTION_KEY!,
environment: 'production',
})
logger.warn('Search results are stale', { operation: 'search' })
logger.error('Checkout failed', new Error('Gateway unavailable'))
await logger.flush()Use @autopilotstartup/log-sdk/react-native for React Native. Pass a custom fetch
implementation only in runtimes that do not provide the Fetch API.
Client ingestion keys identify an application but cannot be confidential when embedded in distributed software. Log Server must enforce client validation, sanitization, and rate limits.
Node
Backend loggers use the privileged /logs endpoint and additionally expose
info and child.
import { createBackendLogger } from '@autopilotstartup/log-sdk/node'
const logger = createBackendLogger({
applicationId: 'my-api',
apiKey: process.env.LOG_APP_SECRET!,
environment: process.env.NODE_ENV,
})
const requestLogger = logger.child({ requestId: 'req_123' })
requestLogger.info('Request started', { route: '/v1/orders' })
requestLogger.error('Request failed', new Error('Database unavailable'))
await logger.close()The SDK keeps a bounded in-memory queue, batches requests, redacts common sensitive fields, times out requests, and requeues failed batches. It does not persist queued events across process or app restarts.
Durable Node transports
Applications that already own a disk spool can use sendLogBatch from the Node
entry point. It sends prebuilt events without changing IDs, timestamps, or
metadata, and exposes HTTP status and Retry-After through LogTransportError.
The application remains responsible for persistence, ordering, and retry policy.
Configuration
Required options are applicationId and apiKey. The SDK owns the official
Log Server endpoint and defaults service to applicationId. Optional
endpoint and service overrides support local development, self-hosting, and
multi-service applications. Other controls include environment, batchSize, maxQueueSize,
flushIntervalMs, requestTimeoutMs, fetch, generateEventId, and now.
Call close() during graceful Node shutdown. Browser and mobile telemetry is
best-effort; call flush() at an appropriate lifecycle boundary when possible.
