IBEX Harness
DocsBenchmarksBlogChangelogRoadmap
GitHub
IBEX Harness

Documentation

Architecture Decision RecordsADR-0002: Repository foundation bootstrapADR-0003: Branch protection and merge policyADR-0004: Protobuf and code generation policyADR-0005: Postgres migration strategyADR-0006: Auth protobuf contract (`ibex.auth.v1`)ADR-0007: Auth token validation implementationADR-0008: Security scanning and CI quality gatesADR-0009: Permission bitmap layoutADR-0010: Cryptography policyADR-0011: Proxy auth gRPC client and middlewareADR-0012: Proxy request normalization (OpenAI chat)ADR-0013: Proxy input validation and stable error envelopeADR-0014: Core domain migration sequencingADR-0015: Proxy rate limit skeleton (Phase 1)ADR-0016: Proxy agent identity verification (Phase 1)ADR-0017: Request ID and trace context strategy (Phase 1)ADR-0018: Graceful shutdown contract (Phase 1)ADR-0019: OpenTelemetry provider configuration (Phase 1)ADR-0020: Shared package boundaries — `packages/config` and `packages/apierror`ADR-0021: Prometheus Metric Catalog (Phase 1)ADR-0022: Health check contract (Phase 1)ADR-0023: Docs site architecture (Phase 1.5)ADR-0024: Benchmark data publishing modelADR-0025: LLM provider abstractionADR-0026: OpenAI client designADR-0027: Streaming dual-write strategyADR-0028: Auth cache designADR-0029: Token revocation propagation via Redis pub/subADR-0030: Directive versioning strategyADR-0031: System prompt injection strategyADR-0032: Session data model and retentionADR-0033: ClickHouse llm_traces schema and retentionADR-0034: Proxy overhead performance measurement methodologyADR-0035: Chat Idempotency-Key Redis dedupeADR-0038: Context assembly service design and gRPC contractADR-0039: Proxy Postgres ownership for session and directive storesADR-0040: Anthropic provider adapterADR-0041: Model capability registryADR-0042: Self-hosted OpenAI-compatible LLM adapterADR-0043: Tokenizer registry architectureADR-0044: Non-streaming response pipelineADR-0045: Streaming response transformationADR-0046: Embedder interface and profile registryADR-0047: Memory temporal validity foundationADR-0048: Memory multi-label categoriesADR-0049: Memory relationship graph readinessADR-0050: MCP server skeleton (transport, auth, audit)ADR-0051: Local LGTM observability stack (Phase 2.5 exit pull-forward)ADR-0052: Memory schema v2 expand (HNSW, quality columns)ADR-0053: Vector store abstraction and composite scoring v2ADR-0054: In-process Presidio PII detection in memoryADR-0055: Memory write-path exact and near-duplicate dedupADR-0056: Temporal-interval-aware conflict detectionADR-0057: Memory write-path persistence and orchestrationADR-0058: Semantic search FTS fallback triggerADR-0059: Hot cache read pathADR-0060: Memory service tenant isolation architectureADR-0061: Retrieval-quality benchmark methodologyADR-0062: Worker task observability and dead-letter handlingADR-0063: Extraction output schema v2ADR-0064: Extraction provider registry and batch executionADR-0065: Extraction batch idempotency and turn pointer orderingADR-0066: Extraction quality evaluation harnessADR-0067: Context capability catalog generate-and-diff for token budgetsADR-0068: Composite scoring-time relevance gateADR-0069: Context packer bounded DP knapsackADR-0070: Context formatting locked ordering and session nonceADR-0071: Context assembly gRPC degradation ladder and retrieval deadlineADR-0072: Extraction enqueue via worker HTTP (not Celery Redis wire format)ADR-0073: Organization Lifecycle and Cascading SuspensionADR-0074 Provider Credential StorageADR-0075 Per-Org Model Routing PolicyADR-0076: Circuit Breaker per ProviderADR-0077: Provider Fallback RoutingADR-0078: Operator runtime topology & environment contract (4.P.0)ADR-0079: Operator session RS256 dual-verify and TOTP step-upIBEX Console service rename and boundaryADR-0081: Fail-closed Proxy runtime controlsD2 metadata-only trace read contractD2 publication, identity, query, and lifecycle contract
ADRs›IBEX Console service rename and boundary
ADRs

IBEX Console service rename and boundary

ADR-0080: IBEX Console service rename and boundary

Context

The merged Track D foundation is a deployable Next.js application under services/console with package name @ibex/console. The implementation is a presentation and preview foundation: it does not yet provide production authentication, tenant authority, live operator API contracts, or deployment evidence. The public documentation site remains under web/, while services/dashboard is a separate compatibility shell.

The product name for the canonical operator application is IBEX Console. The application must remain a service under services/ because it owns runtime startup, routes, server rendering, request boundaries, deployment configuration, and service-level security policy. It is not a reusable package and must not be moved into packages/.

Decision

Rename the canonical deployable application directory to services/console and its JavaScript package to @ibex/console. Rename the operator-specific engineering documentation directory and readiness plan to the Console naming. Update workspace membership, lockfile importer paths, static-analysis exclusions, roadmap references, service instructions, tests, and internal preview environment variables accordingly.

The Console service remains presentation-only and preview-gated after this change. This ADR does not connect live APIs, introduce a browser proxy, change authentication ownership, or retire services/dashboard.

The internal preview variables are renamed as follows:

Legacy variableConsole variable
OPERATOR_WEB_DATA_MODECONSOLE_DATA_MODE
OPERATOR_WEB_PREVIEWCONSOLE_PREVIEW
NEXT_PUBLIC_OPERATOR_WEB_PREVIEWNEXT_PUBLIC_CONSOLE_PREVIEW

These are local/runtime configuration names rather than public compatibility identifiers. External hostnames, ingress identifiers, cookies, deployment project names, and the services/dashboard compatibility workflow remain unchanged.

Boundary rules

The Console service owns Next.js routes and layouts, server components and route handlers, server-only DAL/BFF composition, request context resolution, presentation components, deployment configuration, health behavior, and Console-specific redaction and response shaping. AuthService and owning APIs remain authoritative for authentication, authorization, tenant scope, and evidence truth.

The browser must not receive bearer credentials or raw tenant authority, fetch arbitrary upstream URLs, or make authorization decisions. Live integration is deferred to the secure runtime foundation and approved D1 read-slice milestones.

Consequences

The rename removes ambiguity between the canonical Console product and the legacy compatibility shell. Package filters and service documentation now address the deployable product by its product name. Existing preview behavior and the security posture of the foundation are preserved, but developers using the old internal preview variable names must update their local environment configuration.

The compatibility shell remains independently deployable under its existing identifiers until parity, promotion, rollback, and removal-reference evidence justify a separate retirement decision.

Verification

The rename is verified by workspace/package metadata, lockfile consistency, repository-wide stale-reference audit, service lint/typecheck/test/build checks, diff validation, and secret scanning. No production integration or deployment claim is made by this ADR.

Was this page helpful?

Edit on GitHub

Last updated on

PreviousADR-0079: Operator session RS256 dual-verify and TOTP step-upNextADR-0081: Fail-closed Proxy runtime controls

On this page

  • Context
  • Decision
  • Boundary rules
  • Consequences
  • Verification
0%