Skip to content

Environment Configuration

make87 provides applications with comprehensive runtime configuration through environment variables, eliminating the need for hard-coded settings or external configuration files.

Runtime Configuration Overview

All applications receive their configuration through a single environment variable: MAKE87_CONFIG. This JSON structure contains everything your application needs to operate within the make87 platform:

  • Communication endpoints - Network addresses and protocol settings for inter-application messaging
  • Hardware peripherals - Available devices and sensors on the current node
  • Custom configuration - Application-specific settings from your manifest
  • Storage credentials - Access to the integrated blob storage service
  • Application metadata - Deployment context and system information

Key Benefits

  • Single source of truth - All configuration in one standardized location
  • Language agnostic - Any language that can read environment variables and parse JSON
  • Dynamic configuration - Settings adapt automatically to deployment environment
  • Security - Credentials and sensitive data are managed securely by the platform

Example Usage

import json
import os

# Access the complete runtime configuration
config = json.loads(os.environ["MAKE87_CONFIG"])

# Get communication endpoints
interfaces = config["interfaces"]

# Access custom application settings
app_config = config["config"]

# Retrieve storage credentials
storage = config["storage"]

Complete Documentation

For comprehensive details on the configuration structure, all available fields, and practical code examples in multiple languages, see:

Runtime Configuration →

This guide covers: - Complete configuration schema and examples - All communication patterns (publishers, subscribers, requesters, providers, clients, servers) - Peripheral discovery and hardware access - Storage and secrets management - Best practices for configuration validation and environment-aware coding

Infrastructure Considerations

From an infrastructure perspective, the environment configuration system:

  • Eliminates configuration drift - No need to manage separate config files across nodes
  • Simplifies deployment - Applications are self-contained with injected configuration
  • Enables portability - Same application runs across different environments without changes
  • Provides security isolation - Each application receives only its required configuration and credentials

This approach allows infrastructure teams to manage deployments declaratively through manifests while giving applications the flexibility they need at runtime.