-
Notifications
You must be signed in to change notification settings - Fork 46
feat: add compass service for offchain config resolution #454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🐳 Hadolint Dockerfile Lint ResultsClick to expand detailed resultsDockerfile:18 DL3059 info: Multiple consecutive `RUN` instructions. Consider consolidation.
Dockerfile:19 DL3016 warning: Pin versions in npm. Instead of `npm install <package>` use `npm install <package>@<version>`
Dockerfile:19 DL3059 info: Multiple consecutive `RUN` instructions. Consider consolidation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds the iExec Compass service as a fallback for legacy ENS-based configuration resolution on chains that don't support ENS. The service is primarily used to get workerpool API URLs.
- Adds experimental
compassURLconfiguration option andresolveCompassURL()method toIExecModule - Updates workerpool API URL resolution to use Compass when available, falling back to ENS
- Adds Compass API error handling with new
CompassCallErrorclass
Reviewed Changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/lib/IExecConfig.js | Adds compassURL configuration option and resolveCompassURL method |
| src/common/execution/debug.js | Updates workerpool API URL resolution to use Compass before ENS fallback |
| src/lib/IExecWorkerpoolModule.js | Passes compass URL to getWorkerpoolApiUrl function |
| src/lib/IExecTaskModule.js | Updates task-related functions to use compass URL |
| src/common/utils/config.js | Adds compass configuration for arbitrum-sepolia-testnet |
| src/common/utils/errors.js | Adds CompassCallError class for compass API error handling |
| test/lib/e2e/IExecWorkerpoolModule.test.js | Adds test for compass-based workerpool URL resolution |
| src/cli/cmd/iexec-workerpool.js | Updates CLI commands to pass compass URL |
| src/cli/cmd/iexec-task.js | Updates CLI task commands to use compass URL |
| src/cli/utils/fs.js | Adds compass field to chain configuration schema |
| docs/* | Updates documentation for new compass functionality |
|
could we add tests for resolveCompassURL()? to handle the case when Compass is unavailable also with different chain IDs should be considered |
added service unavailable tests |
|



iExec Compass service fallbacks ENS-based configuration for chains that don't support ENS
The service is notably used to get workerpools API URL
compassURLinIExecModuleconstructor options andcompassinchain.jsonresolveCompassURL()method toIExecModule