Persistent Storage
API Key Persistence
Satellites automatically save their registration credentials to persistent storage to avoid re-registration on restart: Storage Location:Registration Token Usage
Single-Use Registration Flow:- First startup: Uses registration token → Saves API key to file
- Subsequent startups: Uses saved API key → No token needed
- Token expiration: Only affects first-time registration
- No re-registration: Satellites restart without consuming new tokens
- Server restarts: Automatic recovery after system reboots
- Development workflow: Frequent restarts don’t require new tokens
Storage Management
Automatic Operations:- Save: Credentials saved after successful registration
- Load: Credentials loaded on startup before attempting registration
- Verify: API key verified with backend heartbeat
- Clear: Invalid credentials automatically cleared
Important: The
persistent_data/ directory must be writable by the satellite process. In production deployments, ensure proper volume mounting and permissions.Registration Overview
Automatic Registration Flow
Satellites register automatically during startup following this sequence:Secure Token-Based Registration
The registration system requires valid JWT registration tokens for security:- Token Required: All satellites must provide valid registration tokens during startup
- Single-Use: Registration tokens are consumed after successful pairing
- Admin-Controlled: Only administrators can generate registration tokens
- No Open Registration: Satellites cannot register without proper authorization
Environment Variables
Required Configuration
Registration Token Requirements
Token Types and Sources
Satellites require registration tokens generated by administrators: Global Satellite Tokens:- Format:
deploystack_satellite_global_eyJhbGc... - Generated by:
global_adminusers via backend API - Scope: Can register global satellites serving all teams
- Expiration: 1 hour (configurable)
- Format:
deploystack_satellite_team_eyJhbGc... - Generated by:
team_adminusers for specific teams - Scope: Can register team satellites for specific team only
- Expiration: 24 hours (configurable)
Security Model
All satellites register with secure defaults controlled by the backend:- Token-Based Pairing: Valid JWT registration token required
- Satellite Type: Determined by token scope (global or team)
- Status: Always
inactive(requires admin activation) - Single-Use Tokens: Registration tokens consumed after successful pairing
Satellite Name Validation
Validation Rules
TheDEPLOYSTACK_SATELLITE_NAME environment variable must meet strict requirements:
Length Constraints:
- Minimum: 10 characters
- Maximum: 32 characters
- Allowed: lowercase letters (a-z), numbers (0-9), hyphens (-), underscores (_)
- Forbidden: uppercase letters, spaces, special characters
Fail-Fast Validation
Satellite validates the name before any other operations and exits immediately with clear German error messages:Registration Data Structure
System Information Collection
Satellites automatically collect and send system information during registration:satellite_type: Always set to'global'by backendteam_id: Always set tonullby backend (admin can change later)status: Always set to'inactive'by backend (requires admin activation)
MCP Server Capabilities
Satellites report their supported MCP server types:- stdio: Local MCP servers as child processes
- http: HTTP MCP servers (planned)
- sse: SSE MCP servers (planned)
Database Integration
Satellite Tables
The Backend maintains satellite state across five database tables:- satellites: Core satellite registry and configuration
- satelliteCommands: Command queue for satellite management
- satelliteProcesses: MCP server process tracking
- satelliteUsageLogs: Usage analytics and audit trails
- satelliteHeartbeats: Health monitoring and status updates
services/backend/src/db/schema.ts for complete schema definitions.
Registration Database Operations
New Satellite Registration:- All satellites are created with
satellite_type='global',team_id=NULL,status='inactive' - Admin activation required before satellite can be used
- Team assignment controlled via backend admin interface
Development Setup
Local Registration Testing
Expected Registration Output
Token Expiration and Re-Registration
Registration tokens are single-use and expire:Security Considerations
API Key Management
- Generation: 32-byte cryptographically secure random keys
- Storage: Backend stores argon2 hash, satellite receives plain key
- Rotation: New API key generated on every registration
- Scope: API keys are scoped to satellite type (global vs team)
Centralized Security Model
All Satellites are Global:- Name uniqueness enforced globally across all satellites
- All satellites start as
inactiveand require admin activation - Team assignment controlled exclusively by backend administrators
- No client-side configuration of security-sensitive parameters
- Satellites can be assigned to teams via backend admin interface
- Team assignment changes satellite behavior and resource access
- Resource isolation enforced at runtime based on team assignment
Troubleshooting
Common Registration Issues
Missing Environment Variable:Debug Endpoints
Use these endpoints to troubleshoot registration issues:Implementation Status
Current Implementation:- ✅ Automatic registration during startup
- ✅ Mandatory DEPLOYSTACK_SATELLITE_NAME validation
- ✅ Upsert registration logic for restarts
- ✅ System information collection
- ✅ API key generation and management
- ✅ Database integration with 5 satellite tables
- ✅ Fail-fast validation with clear error messages
- ✅ Centralized security model (no client-controlled type/team assignment)
- ✅ Default inactive status requiring admin activation
- ✅ JWT-based registration token system prevents unauthorized satellites
- ✅ Single-use tokens with cryptographic validation
- ✅ Admin-controlled token generation with proper scope enforcement
- ✅ All satellites register as
inactiverequiring admin activation
- ✅ JWT-based registration token system
- ✅ Bearer token authentication for Backend communication
- ✅ Admin interface for registration token management
- ✅ Satellite client registration token support
- 🚧 API key rotation and renewal
- 🚧 Registration status monitoring and alerts
The satellite registration system implements secure JWT-based pairing to prevent unauthorized satellite connections. Once registered with a valid token, satellites receive permanent API keys for ongoing communication. See Backend API Security for complete token management details.

