Operations
Observe, inspect, test, build, diagnose, and deploy the same checked application graph.
Use these pages to test application behavior, inspect running work, diagnose failures, and prepare a deployment. Use local telemetry and the Inspector while developing, deterministic tests for behavior, a reproducible build before release, and deployment preview only when cloud infrastructure is intentionally configured.
Pre-setup
Start with local logging and bounded capture; neither requires a telemetry account, exporter,
new defineEnv fields, or a Docker service. Merge these settings into your existing defineApp
configuration, retaining its environment contract:
/** Local telemetry works without a remote exporter or extra environment secrets. */
import { defineApp, defineEnv } from "@relkit/app/config";
export default defineApp({
env: defineEnv({}),
telemetry: {
redaction: { mode: "development-redacted", maxBytes: 65_536 },
localRetention: { maxRecords: 2_000, maxAgeMs: 3_600_000, maxBytes: 16_777_216 },
},
});
Run bun run check and bun run dev, then send a request to an existing route to produce
correlated logs. For a UI, complete the separate Inspector setup:
installation alone does not enable its bridge. Keep your application’s Redis, MinIO, database,
and job providers in local Docker.
Remote Sentry/OTLP export is optional. Their integrations have no bundled Docker collector
recipe; configure a reachable service and supply its named endpoint/secret bindings only when
selecting that exporter. Those binding references are distinct from application context.env fields.
Choose the operational task
Observability
Configure redaction, local evidence, sampling, Sentry, and OTLP.
Inspector
Follow requests through graph nodes, logs, traces, diagnostics, and API contracts.
Testing
Test functions and the in-process application with explicit provider fakes.
Deployment
Verify Docker images and choose supported application hosts and runtime providers.
Troubleshooting
Use stable diagnostics to repair the owning source of truth.
CLI
Follow terminal workflows and find command syntax and options.
Use the generated project commands
The minimal starter exposes the normal application lifecycle as package scripts. This manifest is a reference for the base app; optional feature guides add only their selected dependencies:
{
"name": "my-app",
"private": true,
"type": "module",
"packageManager": "bun@1.3.10",
"scripts": {
"dev": "relkit dev",
"check": "relkit check",
"typecheck": "tsc --noEmit",
"test": "bun test",
"test:unit": "bun test tests/unit",
"test:integration": "bun test tests/integration",
"build": "relkit build",
"start": "NODE_ENV=production bun run --no-env-file .relkit/build/server/index.js",
"graph": "relkit graph print"
},
"dependencies": {
"@relkit/app": "0.8.2",
"@scalar/hono-api-reference": "0.12.9",
"effect": "4.0.1"
},
"devDependencies": {
"@types/bun": "1.3.10",
"@relkit/cli": "0.8.4",
"@relkit/testing": "0.8.2",
"typescript": "5.9.3"
}
}
During development, run the narrowest check that proves the change. Before releasing an application, run the complete local sequence:
bun run check
bun run typecheck
bun run test
bun run build
bun run start
Building and starting do not create cloud resources. Deployment is a separate, explicit lifecycle.
Match the repository gate before pushing
RELKIT contributors can run the same locally reproducible CI coverage before a push:
bun run prepush
That focused merge gate needs no Docker daemon. Use bun run prepush:full with Docker available for
full local acceptance, including container/local-service and browser checks. Dependency review is hosted
CI-only. Real AWS acceptance is separately opt-in locally and is not run by CI; it needs explicit
credentials and authorization for cloud cost.