Orazaka
Orazaka
Intelligence
GitHub
For decision-makers

Plain-language definitions of the terms used across these docs. A quick reference for anyone evaluating Orazaka.

Glossary

Quick reference for Orazaka ecosystem terms, patterns, themes, and environment variables.


1. Core Terms & Patterns

  • Bridge Pattern 2.0: Core model wrappers ensuring Spring AI types do not leak outside orazaka-core.
  • Ports & Adapters: Decouples business logic (core ports) from framework details (gateway, tools adapters).
  • Context-Matrix Pipeline: 15-stage ordered filter chain enriching prompt context.
  • Multi-Tier Caching: Caching tool outputs locally in Caffeine (L1) and PostgreSQL (L2).
  • Server-Driven UI (SDUI): Client layout capabilities dynamically driven by backend OperationGraph states.
  • Mapper Isolation (ERR-107): Package-private *Mapper files containing static construction mapping.
  • Immutable Time (ERR-108): Enforces date-fns and ISO-8601 strings, banning native Date mutations.
  • Input Blocking Invariant (ERR-126): Disables text fields, submit buttons, and menus during streaming.
  • Self-Validating Records (ERR-106): Java records validate fields in compact constructors.
  • Owner Validates Field (ERR-116): Record/class owning a field validates it. No inline checks in services.
  • BFF Proxy: Browser never hits Gateway (8080) or Ollama (11434) directly. All traffic proxies via Next.js server API routes.
  • Frontend Maven Integration: frontend-maven-plugin runs npm ci and npm run build inside the Maven lifecycle — web targets only, mobile bypassed via --ignore=orazaka-mobile-client.
  • Split-Track CI: Track A (backend+web) always runs the full 5-phase pipeline. Track B (mobile) triggers only on path changes — lightweight ESLint + tsc --noEmit.

2. Environment Variables

All variables are defined in the root .env file (loaded by properties-maven-plugin at the initialize phase). Frontend-specific variables are in orazaka-apps/orazaka-ui/orazaka-web-client/.env.local.

Infrastructure & Database

KeyDefaultPurpose
PORT8080Spring Boot Gateway listen port
GATEWAY_CORS_ALLOWED_ORIGINShttp://localhost:3000Allowed CORS origins for BFF proxy
SPRING_DATASOURCE_URLjdbc:postgresql://localhost:5432/orazaka_dbMain PostgreSQL connection string
SPRING_DATASOURCE_USERNAMEorazaka_adminPostgreSQL database user
SPRING_DATASOURCE_PASSWORDorazaka_secure_passPostgreSQL database password
REDIS_URLredis://localhost:6379Redis rate-limiting and session cache

Message Broker (RabbitMQ)

KeyDefaultPurpose
SPRING_RABBITMQ_HOSTlocalhostRabbitMQ host address
SPRING_RABBITMQ_PORT5672RabbitMQ listen port
BROKER_QUEUE_MAX_LENGTH1000Max RabbitMQ queue capacity
CB_FAILURE_RATE50Circuit breaker failure threshold percentage

AI Providers (Ollama)

KeyDefaultPurpose
DEFAULT_PROVIDERollamaActive AI provider (bound to orazaka.core.default-provider)
OLLAMA_BASE_URLhttp://localhost:11434Local Ollama service URL
OLLAMA_MODELllama3.2:3bDefault chat model
OLLAMA_EMBEDDING_MODELnomic-embed-text:latestLocal embedding model for RAG
ROUTER_PROVIDERollamaProvider for RouterInterceptor intent classification
ROUTER_MODELllama3.2:3bModel for RouterInterceptor

Workers & Media

KeyDefaultPurpose
VIDEO_WORKER_PORT8188SVD video worker probe port
IMAGE_WORKER_PORT8085stable-diffusion.cpp local port
IMAGE_GEN_SEED-1Image generation seed (-1 = random)
VIDEO_GEN_SEED-1Video generation seed (-1 = random)
LOCALAI_BASE_URLhttp://localhost:8085LocalAI image/TTS service endpoint
LOCALAI_API_KEYnot-requiredLocalAI API key (not needed for local usage)
LOCALAI_MODELtts-1Default LocalAI model

Security & Cryptography

KeyDefaultPurpose
CRYPTO_KEY(required)AES-256 JPA field encryption key
CRYPTO_SALT(required)AES-256 encryption salt (hex)

Timeouts

KeyDefaultPurpose
ASYNC_TIMEOUT_MS600000Async operation timeout (10 minutes)
JOBS_TIMEOUT_SECONDS600Background job execution timeout

Uploads & Logging

KeyDefaultPurpose
UPLOAD_DIRvar/orazaka-uploadsFile upload storage directory
LOG_DIRvar/logsApplication log output directory
GATEWAY_LOGvar/logs/gateway.logGateway-specific log file path

Frontend BFF (Next.js) — orazaka-apps/orazaka-ui/orazaka-web-client/.env.local

KeyDefaultPurpose
NEXTAUTH_SECRET(required)BFF session encryption cookie key
NEXTAUTH_URLhttp://localhost:3000UI domain for NextAuth callbacks
GATEWAY_URLhttp://localhost:8080Internal Gateway API proxy target
NEXT_PUBLIC_UI_URLhttp://localhost:3000Public UI base URL

SonarQube

KeyDefaultPurpose
SONAR_TOKEN(CI secret)SonarCloud authentication token

E2E Testing (ADR-040)

KeyDefaultPurpose
DB_LOCAL_PORT5433Ephemeral E2E PostgreSQL port
DB_LOCAL_NAMEorazaka_e2eE2E database name
DB_LOCAL_USERNAMEorazaka_e2eE2E database user
DB_LOCAL_PASSWORDorazaka_e2e_passE2E database password
GATEWAY_TARGET_URLhttp://localhost:8080Gateway target for E2E contract tests

Test Credentials

KeyDefaultPurpose
ADMIN_EMAILadmin@orazaka.comSeeded admin account email
ADMIN_PASSWORDadminSeeded admin account password
USER_EMAILuser@orazaka.comSeeded user account email
USER_PASSWORDuserSeeded user account password

3. UI Accents & Themes

UI theme accents are resolved from the database (theme category in orazaka_models), decoupling display styles from hardcoded configurations.

  • Accents: zinc (default), rose, emerald, amber.
  • Flow: User settings choice → themeAccent saved in preferences → Next.js client useTenant() context mapper resolves colors via accentMap.

4. ERR Code Reference

CodeRuleSummary
ERR-102Module SeparationStrict module boundary enforcement
ERR-103StructuringOne top-level class per file, 1:1 test matching
ERR-104NamingBanned: prefixing classes with Orazaka or orazaka-
ERR-106Domain ContractsSelf-validating records, compact constructor validation
ERR-107Mapper IsolationMapping logic in package-private static *Mapper files
ERR-108Date Formattingdate-fns only. Banned: moment.js, dayjs, native Date methods
ERR-109PersistenceParameterized repos, no raw SQL, catch DataIntegrityViolationException
ERR-112Segregated IngressGraphQL, REST, AMQP in separate sub-packages
ERR-116Owner ValidatesRecord owning field validates it
ERR-120ClientsSpring RestClient or @HttpExchange only. Banned: java.net.http.HttpClient
ERR-122Core Interceptor PurificationOnly PromptContextInterceptor interface in core interceptor package
ERR-125CLI InvariantNo shell scripts. Must run via npx orazaka subcommands
ERR-126Input BlockingText entry locked when isSending || isGenerating
ERR-130Local Agent ProtocolSQLite task store, heartbeat sync, SSE tunnel
ERR-135Record PurityRecords are stateless data carriers — no loggers, I/O, Spring beans, or service facades

Related Documentation