Summary
Fixes enterprise apps not appearing in global apps location database due to missing hash field in app running broadcast messages.
Root Cause
decryptEnterpriseApps()defaults toformatSpecs: truespecificationFormatter()stripshashandheightmetadata fields from app specs- App running broadcast messages require
hashto identify the app registration - Without
hash, the global apps location database rejects the message
Changes
Core Fix
Pass formatSpecs: false when reading apps from local database in:
checkAndNotifyPeersOfRunningApps()- broadcasts app running messages to networkrecreateMissingContainers()- recreates containers from stored app specs
This preserves the hash and height metadata needed for app identification while still sanitizing specs from frontend/API calls using formatSpecs: true.
CI/CD Fixes
1. MongoDB Setup (.github/workflows/nodejs.yml)
- Switched from
supercharge/mongodb-github-actionto native GitHub service containers - Why: Docker Engine 29+ enforces minimum API version 1.44, causing incompatibility with third-party actions
- Solution: Use official
mongo:7.0image directly via GitHub services - References:
2. Test Updates (tests/unit/dockerService.test.js)
- Updated Docker network config expectations to include
IPRangefield - Why: Newer Docker versions include
IPRange: ''in network IPAM configuration - Fix: Added
IPRange: ''to test expectations for network creation tests
Impact
Before: Enterprise apps like streamrnode1766836210779 were running locally but not showing in global location database
{
"name": "streamrnode1766836210779",
"runningSince": "2026-02-13T08:39:06.491Z"
}After: Messages now include hash and are accepted by global database
{
"name": "streamrnode1766836210779",
"hash": "2fd2c736969db56594609be45e120f3886dd768ac220af4bd2ab2339bb2ae542",
"runningSince": "2026-02-13T09:47:50.420Z"
}Testing
✅ Tested on node 77.243.21.246 running streamrnode1766836210779
✅ Confirmed app running messages now include hash field
✅ Verified no other decryptEnterpriseApps() calls need modification
✅ CI tests passing with updated Docker configuration