mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
Add setup.required_secrets to tool capabilities.json files so users can configure OAuth client credentials (Google, Slack, Okta, Telegram) through the Extensions UI Setup modal instead of environment variables. - Add ToolSetupSchema/ToolSecretSetupSchema types to capabilities_schema.rs - Extend get_setup_schema(), save_setup_secrets(), list() to handle WasmTool - Extract load_tool_capabilities() helper to reduce duplication - Auto-activate tools after saving setup secrets - Show display_name labels (Channel/Tool/MCP) in extension cards - Update button labels: "Setup" when unconfigured, "Reconfigure" when set - Replace "Set" badge with checkmark in configure modal - Fix innerHTML XSS pattern in slash autocomplete (use textContent) - Add tests for ToolSetupSchema parsing and resolve_nested promotion - Update registry display names (e.g. "Telegram Channel" vs "Telegram Tool") Co-authored-by: Claude Sonnet 4.6 <[email protected]>
106 lines
3.1 KiB
JSON
106 lines
3.1 KiB
JSON
{
|
|
"http": {
|
|
"allowlist": [
|
|
{
|
|
"host": "*.okta.com",
|
|
"path_prefix": "/api/v1/",
|
|
"methods": ["GET", "POST", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.okta.com",
|
|
"path_prefix": "/idp/myaccount/",
|
|
"methods": ["GET", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.okta.com",
|
|
"path_prefix": "/oauth2/v1/",
|
|
"methods": ["POST"]
|
|
},
|
|
{
|
|
"host": "*.oktapreview.com",
|
|
"path_prefix": "/api/v1/",
|
|
"methods": ["GET", "POST", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.oktapreview.com",
|
|
"path_prefix": "/idp/myaccount/",
|
|
"methods": ["GET", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.oktapreview.com",
|
|
"path_prefix": "/oauth2/v1/",
|
|
"methods": ["POST"]
|
|
},
|
|
{
|
|
"host": "*.okta-emea.com",
|
|
"path_prefix": "/api/v1/",
|
|
"methods": ["GET", "POST", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.okta-emea.com",
|
|
"path_prefix": "/idp/myaccount/",
|
|
"methods": ["GET", "PUT"]
|
|
},
|
|
{
|
|
"host": "*.okta-emea.com",
|
|
"path_prefix": "/oauth2/v1/",
|
|
"methods": ["POST"]
|
|
}
|
|
],
|
|
"credentials": {
|
|
"okta_oauth_token": {
|
|
"secret_name": "okta_oauth_token",
|
|
"location": { "type": "bearer" },
|
|
"host_patterns": ["*.okta.com", "*.oktapreview.com", "*.okta-emea.com"]
|
|
}
|
|
},
|
|
"rate_limit": {
|
|
"requests_per_minute": 30,
|
|
"requests_per_hour": 500
|
|
},
|
|
"timeout_secs": 30
|
|
},
|
|
"workspace": {
|
|
"allowed_prefixes": ["okta/"]
|
|
},
|
|
"secrets": {
|
|
"allowed_names": ["okta_oauth_token"]
|
|
},
|
|
"auth": {
|
|
"secret_name": "okta_oauth_token",
|
|
"display_name": "Okta",
|
|
"oauth": {
|
|
"authorization_url": "https://{okta_domain}/oauth2/v1/authorize",
|
|
"token_url": "https://{okta_domain}/oauth2/v1/token",
|
|
"client_id_env": "OKTA_OAUTH_CLIENT_ID",
|
|
"client_secret_env": "OKTA_OAUTH_CLIENT_SECRET",
|
|
"scopes": [
|
|
"openid",
|
|
"profile",
|
|
"email",
|
|
"offline_access",
|
|
"okta.users.read.self",
|
|
"okta.users.manage.self",
|
|
"okta.apps.read"
|
|
],
|
|
"use_pkce": true
|
|
},
|
|
"instructions": "1. In your Okta Admin Console, go to Applications > Create App Integration\n2. Select 'OIDC - OpenID Connect', then 'Web Application'\n3. Set Sign-in redirect URI to http://localhost:9876/callback (through :9886)\n4. Under Okta API Scopes, grant: okta.users.read.self, okta.users.manage.self, okta.apps.read\n5. Copy the Client ID and Client Secret\n6. IMPORTANT: You must use the Org Authorization Server (not a custom one)\n7. Store your Okta domain in workspace at 'okta/domain' (e.g., 'mycompany.okta.com')\n8. For custom domains, add them to okta-tool.capabilities.json allowlist",
|
|
"setup_url": "https://developer.okta.com/docs/guides/implement-oauth-for-okta/main/",
|
|
"token_hint": "OAuth2 access token (JWT)",
|
|
"env_var": "OKTA_OAUTH_TOKEN"
|
|
},
|
|
"setup": {
|
|
"required_secrets": [
|
|
{
|
|
"name": "okta_oauth_client_id",
|
|
"prompt": "Okta OAuth Client ID"
|
|
},
|
|
{
|
|
"name": "okta_oauth_client_secret",
|
|
"prompt": "Okta OAuth Client Secret"
|
|
}
|
|
]
|
|
}
|
|
}
|