Skip to main content

Configuration Overview

Oidis uses a layered configuration system based on the JSONP format. Configuration is split into build-time settings (what gets compiled) and runtime settings (how the app behaves).

Pages in This Section​

PagePurpose
JSONP SystemThe package.conf.jsonp file — project identity, dependencies, build settings, and the extendsConfig/imports composition mechanisms
Commons Configcommons.jsonp — runtime configuration for database, authentication, email, and service settings
SolutionsBuild variants for different platforms and deployment targets — static, shared, app, and more
Frontend ConfigurationHow backend configuration reaches the browser — embedFeatures whitelisting, security boundaries, and runtime distribution
Application SettingsDB-backed runtime settings — initialized from JSONP, modifiable at runtime through the Hub GUI
DAO LayerThe BaseDAO configuration engine — hierarchical JSONP loading with inheritance, imports, localization, and the InstallationRecipeDAO protocol manager

Configuration Layers​

  1. package.conf.jsonp — Defines what the project is: name, namespace, dependencies, build options. Read by Oidis Builder at build time.
  2. commons.jsonp — Defines how the app runs: database connection, auth settings, email transport. Read by the application at startup.
  3. Solutions — Define build variants: which files to include, target platform, output format. Selected at build time via CLI.
  4. Frontend distribution — The embedFeatures mechanism controls which configuration values reach the browser. See Frontend Configuration.
  5. Application Settings — DB-persisted settings initialized from JSONP, modifiable at runtime through the Hub GUI. See Application Settings.

For detailed Builder configuration (tasks, CLI flags, build profiles), see the Builder Configuration page.

Where Should I Put This Setting?​

Setting typeConfig fileWhen it changes
Project identity, dependencies, build optionspackage.conf.jsonpAt development time (committed)
Database host, SMTP server, session timeoutcommons.jsonpPer deployment (committed)
Feature flags, mail engine toggle, default permissionsApplication SettingsAt runtime via Hub GUI (DB-persisted)
API keys, passwords, tokensprivate.conf.jsonpPer deployment (never committed)
Values the frontend needsembedFeatures in Frontend ConfigurationAt build or restart time
Build variant (Docker, ARM, desktop)SolutionsAt build time via CLI flag

See also: Builder Configuration | Architecture Overview | Frontend Configuration