Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
2.3 KiB
2.3 KiB
Configuration Standards
Module System
- All JavaScript/TypeScript files use ES Modules
- Use
.jsextension with ES Module syntax - Import statements should use the
.jsextension explicitly - No mixing of CommonJS and ES Modules
Environment Variables
Naming Convention
All environment variables must use SCREAMING_SNAKE_CASE format with clear category prefixes:
-
APP_: Application settings
- APP_NAME
- APP_ENV
- APP_VERSION
- APP_HOST
- APP_PORT
-
DB_: Database settings
- DB_HOST
- DB_PORT
- DB_NAME
- DB_USER
- DB_PASSWORD (managed via Docker secrets)
-
REDIS_: Redis settings
- REDIS_HOST
- REDIS_PORT
- REDIS_PASSWORD (managed via Docker secrets)
-
EMAIL_: Email settings
- EMAIL_HOST
- EMAIL_PORT
- EMAIL_USER
- EMAIL_PASSWORD (managed via Docker secrets)
-
AUTH_: Authentication settings
- AUTH_SECRET (replaces NEXTAUTH_SECRET)
- AUTH_URL (replaces NEXTAUTH_URL)
- AUTH_SESSION_EXPIRES
- AUTH_GOOGLE_CLIENT_ID (managed via Docker secrets)
- AUTH_GOOGLE_CLIENT_SECRET (managed via Docker secrets)
-
CRYPTO_: Cryptographic settings
- CRYPTO_KEY (managed via Docker secrets)
- CRYPTO_SALT_BYTES
- CRYPTO_ITERATIONS
- CRYPTO_KEY_LENGTH
- CRYPTO_ALGORITHM
Variable Usage Guidelines
- Use descriptive names that clearly indicate purpose
- Group related variables with consistent prefixes
- Use boolean flags with IS_ or HAS_ prefix (e.g., IS_PRODUCTION, HAS_FEATURE_X)
- Sensitive values should be managed through Docker secrets
- Default values should be provided in .env.example
- Environment-specific values go in .env.development or .env.production
Configuration Files
- Use .env files for environment variables
- Use config.ini for application configuration
- Use docker-compose.yaml for Docker configuration
- Keep secrets in the secrets/ directory
- Use consistent indentation (2 spaces) in all configuration files
Best Practices
- Never commit sensitive data to version control
- Document all configuration options
- Validate environment variables at startup
- Use strong typing for configuration objects
- Centralize configuration management
- Follow the principle of least privilege
- Use meaningful default values
- Keep configuration DRY (Don't Repeat Yourself)