Configuration

Guide & Structure

Centralized, deterministic configuration using xypriss.config.jsonc with support for dynamic variable injection.

Strict Root Loading
XyPriss only loads configuration from the absolute project root. Nested configurations in subdirectories are ignored for security and determinism.

Primary Sections

$vars

Project metadata and application-wide variables populated into the __sys__.vars namespace.

$internal

Enterprise-grade plugin authorization and isolated filesystem workspace definitions.

Dynamic Variable Injection

XyPriss supports recursive dynamic property resolution using various providers, ensuring clean separation between code and environment.

&(env).KEY

Injects environment variables with optional fallbacks.

json
"port": "&(env).PORT || 8080"
&(pkg).path

Accesses properties from package.json (keys or values).

json
"version": "&(pkg).version"
&(this).KEY

Self-reference other properties in the same config file.

json
"baseUrl": "http://&(this).$vars.host"
&(file).path

Injects file contents (certificates, secrets) synchronously.

json
"cert": "&(file)./certs/server.crt"

Accessing in TypeScript

typescript
// Securely access resolved variables anywhere
const port = __sys__.vars.get("port") || 8080;
const projectName = __sys__.vars.get("__project_name__");

console.log(`Starting ${projectName} on port ${port}...`);
Network Engine

Configure HTTP/2, Compression, Rate Limiting, and Reverse Proxy plugins.