🙌 OpenHands: AI-Driven Development
5862 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …tend/__tests__/conversation-websocket-handler.test.tsx | 92 | function renderWithWebSocketContext( |
| LOW | …__/components/features/user/user-context-menu.test.tsx | 38 | function UserContextMenuWithRootOutlet({ |
| LOW | …end/__tests__/hooks/use-click-outside-element.test.tsx | 10 | function ClickOutsideTestComponent({ |
| LOW | frontend/__tests__/routes/llm-settings.test.tsx | 33 | function resetProfilesServiceDefaults() { |
| LOW | frontend/__tests__/routes/llm-settings.test.tsx | 148 | function buildSettingsWithAdvancedToggle( |
| LOW | frontend/__tests__/routes/billing.test.tsx | 350 | function renderWithForcedReRenders( |
| LOW | …ontend/__tests__/routes/verification-settings.test.tsx | 43 | function renderVerificationSettingsScreen() { |
| LOW | frontend/__tests__/routes/task-list-tab.test.tsx | 20 | function createTaskTrackingObservation( |
| LOW | …/__tests__/routes/manage-organization-members.test.tsx | 56 | function ManageOrganizationMembersWithPortalRoot() { |
| LOW | …ontend/__tests__/helpers/websocket-test-components.tsx | 12 | export function ConnectionStatusComponent() { |
| LOW | …ontend/__tests__/helpers/websocket-test-components.tsx | 45 | export function OptimisticUserMessageStoreComponent() { |
| LOW | …ontend/__tests__/helpers/websocket-test-components.tsx | 59 | export function ErrorMessageStoreComponent() { |
| LOW | …ontend/src/contexts/conversation-websocket-context.tsx | 80 | export function ConversationWebSocketProvider({ |
| LOW | …nd/src/context/conversation-subscriptions-provider.tsx | 73 | export function ConversationSubscriptionsProvider({ |
| LOW | …nd/src/context/conversation-subscriptions-provider.tsx | 322 | export function useConversationSubscriptions() { |
| LOW | frontend/src/utils/download-trajectory.ts | 3 | function isSaveFilePickerSupported(): boolean { |
| LOW | frontend/src/utils/sdk-settings-field-metadata.ts | 57 | export function getSettingsFieldConstraints(fieldKey: string) { |
| LOW | frontend/src/utils/sdk-settings-field-metadata.ts | 117 | export function resolveSchemaFieldDescription( |
| LOW | frontend/src/utils/sdk-settings-field-metadata.ts | 129 | export function resolveSchemaFieldSectionLabel( |
| LOW | frontend/src/utils/error-handler.ts | 45 | export function isBudgetOrCreditError(errorMessage: string): boolean { |
| LOW | frontend/src/utils/file-validation.ts | 13 | export function validateIndividualFileSizes( |
| LOW | frontend/src/utils/sdk-settings-schema.ts | 90 | export function getConversationSettingValue( |
| LOW | frontend/src/utils/sdk-settings-schema.ts | 219 | export function buildInitialSettingsFormValues( |
| LOW | frontend/src/utils/sdk-settings-schema.ts | 284 | export function hasAdvancedSettingsOverrides(settings: Settings): boolean { |
| LOW | frontend/src/utils/sdk-settings-schema.ts | 409 | export function buildSdkSettingsPayloadForView( |
| LOW | frontend/src/utils/sdk-settings-schema.ts | 431 | export function getVisibleSettingsSections( |
| LOW | frontend/src/utils/conversation-local-storage.ts | 128 | export function clearConversationLocalStorage(conversationId: string) { |
| LOW | frontend/src/utils/conversation-local-storage.ts | 153 | export function useConversationLocalStorageState(conversationId: string): { |
| LOW | frontend/src/utils/derive-profile-name.ts | 19 | export function deriveProfileNameFromModel(model: string): string | null { |
| LOW | frontend/src/utils/org/permission-guard.ts | 26 | async function getPermissionDeniedFallback(): Promise<string> { |
| LOW | …at/task-tracking/task-tracking-observation-content.tsx | 10 | export function TaskTrackingObservationContent({ |
| LOW | …rc/components/v1/chat/hooks/use-plan-preview-events.ts | 50 | function findLastPlanningObservationInPhase( |
| LOW | …hat/event-message-components/critic-result-display.tsx | 39 | function getIterativeRefinementEnabled( |
| LOW | …-message-components/observation-pair-event-message.tsx | 10 | export function ObservationPairEventMessage({ |
| LOW | …t-message-components/generic-event-message-wrapper.tsx | 23 | export function GenericEventMessageWrapper({ |
| LOW | …nt-message-components/user-assistant-event-message.tsx | 15 | export function UserAssistantEventMessage({ |
| LOW | …nts/features/settings/upgrade-banner-with-backdrop.tsx | 9 | export function UpgradeBannerWithBackdrop({ |
| LOW | …/project-management/project-management-integration.tsx | 8 | export function ProjectManagementIntegration() { |
| LOW | …settings/llm-settings/llm-settings-inputs-skeleton.tsx | 5 | export function LlmSettingsInputsSkeleton() { |
| LOW | …settings/app-settings/app-settings-inputs-skeleton.tsx | 4 | export function AppSettingsInputsSkeleton() { |
| LOW | …ttings/git-settings/azure-devops-token-help-anchor.tsx | 4 | export function AzureDevOpsTokenHelpAnchor() { |
| LOW | …ttings/git-settings/bitbucket-dc-token-help-anchor.tsx | 4 | export function BitbucketDCTokenHelpAnchor() { |
| LOW | …ettings/git-settings/configure-azure-devops-anchor.tsx | 7 | export function ConfigureAzureDevOpsAnchor() { |
| LOW | …/git-settings/configure-github-repositories-anchor.tsx | 9 | export function ConfigureGitHubRepositoriesAnchor({ |
| LOW | …settings/git-settings/bitbucket-dc-webhook-manager.tsx | 38 | export function BitbucketDCWebhookManager({ |
| LOW | …settings/git-settings/gitlab-webhook-manager-state.tsx | 13 | export function GitLabWebhookManagerState({ |
| LOW | …recent-conversations/recent-conversations-skeleton.tsx | 29 | function RecentConversationSkeleton({ |
| LOW | …recent-conversations/recent-conversations-skeleton.tsx | 44 | export function RecentConversationsSkeleton() { |
| LOW | …recent-conversations/conversation-status-indicator.tsx | 12 | export function ConversationStatusIndicator({ |
| LOW | …ents/features/chat/git-control-bar-tooltip-wrapper.tsx | 10 | export function GitControlBarTooltipWrapper({ |
| LOW | …ts/features/chat/task-tracking-observation-content.tsx | 8 | export function TaskTrackingObservationContent({ |
| LOW | …onents/features/chat/git-control-bar-branch-button.tsx | 15 | export function GitControlBarBranchButton({ |
| LOW | …-message-components/observation-pair-event-message.tsx | 14 | export function ObservationPairEventMessage({ |
| LOW | …t-message-components/generic-event-message-wrapper.tsx | 20 | export function GenericEventMessageWrapper({ |
| LOW | …nt-message-components/user-assistant-event-message.tsx | 14 | export function UserAssistantEventMessage({ |
| LOW | …ents/features/org/invite-organization-member-modal.tsx | 14 | export function InviteOrganizationMemberModal({ |
| LOW | …features/org/organization-member-role-context-menu.tsx | 25 | export function OrganizationMemberRoleContextMenu({ |
| LOW | …ponents/features/org/delete-org-confirmation-modal.tsx | 12 | export function DeleteOrgConfirmationModal({ |
| LOW | …ponents/features/org/organization-member-list-item.tsx | 20 | export function OrganizationMemberListItem({ |
| LOW | …ents/features/launch/plugin-launch-parameter-input.tsx | 14 | export function PluginLaunchParameterInput({ |
| 3924 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | frontend/__tests__/routes/llm-settings.test.tsx | 2100 | // ── Auto-profile flow ─────────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 80 | // ── Sub-agents (OpenHands mode) ────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 101 | // ── ACP (ACP mode) ─────────────────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 140 | // ── Derived state ──────────────────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 157 | // ── Save ───────────────────────────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 199 | // ── Loading ────────────────────────────────────────────────────────────── |
| MEDIUM | frontend/src/routes/agent-settings.tsx | 204 | // ── Render ─────────────────────────────────────────────────────────────── |
| MEDIUM | enterprise/tests/unit/test_billing.py | 635 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/test_billing.py | 637 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 928 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 930 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 1068 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 1070 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 81 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 83 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 119 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 121 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 198 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 200 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 246 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 248 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 336 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 338 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 687 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 689 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 824 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 826 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 1017 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 1019 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 23 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 25 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 447 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_authorization.py | 449 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/test_org_profiles.py | 170 | # ── Integration tests ────────────────────────────────────────────────────── |
| MEDIUM | enterprise/tests/unit/test_auth_routes.py | 2421 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/test_auth_routes.py | 2423 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/test_auth_routes.py | 2512 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/test_auth_routes.py | 2514 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 45 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 47 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 64 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 66 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 214 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 216 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 239 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 241 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 27 | # --------------------------------------------------------------------------- |
| MEDIUM | …tests/unit/test_sharing/test_shared_event_filtering.py | 29 | # --------------------------------------------------------------------------- |
| MEDIUM | enterprise/tests/unit/server/routes/test_orgs.py | 3278 | # ============================================================================= |
| MEDIUM | enterprise/tests/unit/server/routes/test_orgs.py | 3280 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 57 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 59 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 125 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 127 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 263 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 265 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 339 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 341 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 385 | # ============================================================================= |
| MEDIUM | …rprise/tests/unit/server/routes/test_org_git_claims.py | 387 | # ============================================================================= |
| 275 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 47 | # Create a stale task (working for more than 1 hour) |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 57 | # Create a non-stale task (working for less than 1 hour) |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 267 | # Create a mock processor that raises an exception |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 271 | # Create a task |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 380 | # Create a mock processor |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 384 | # Create a task with delay |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 87 | # Create a pending task (older) |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 168 | # Create a pending task |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 179 | # Create a patched version of next_task with the bug fixed |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 210 | # Create a mock processor |
| MEDIUM | enterprise/tests/unit/test_run_maintenance_tasks.py | 426 | # Create a stale task and a pending task |
| MEDIUM | enterprise/tests/unit/test_stripe_service_db.py | 80 | # Create a mock org object to return from OrgStore |
| MEDIUM | enterprise/tests/unit/test_stripe_service_db.py | 120 | # Create a mock org object to return from OrgStore |
| MEDIUM | enterprise/tests/unit/test_stripe_service_db.py | 164 | # Create a mock org object to return from OrgStore |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 612 | # Create a JWT access token |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 621 | # Create a signed token containing the access and refresh tokens |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 142 | # Create a valid JWT token that expires in the future |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 480 | # Create a valid offline token (refresh token) |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 566 | # Create a signed token |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 646 | # Create a mock request with Authorization header |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 659 | # Create a mock request with X-Session-API-Key header |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 672 | # Create a mock request with both headers |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 688 | # Create a mock request with no relevant headers |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 701 | # Create a mock request with incorrectly formatted Authorization header |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 714 | # Create a mock request with X-Access-Token header |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 727 | # Create a mock request with both headers |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 743 | # Create a mock request with both headers |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 759 | # Create a mock request with all three headers |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 776 | # Create a mock request with invalid Authorization header and X-Access-Token |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 792 | # Create a mock request with empty header values |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 809 | # Create a mock request with Bearer header with empty token |
| MEDIUM | enterprise/tests/unit/test_saas_user_auth.py | 220 | # Create a valid JWT token |
| MEDIUM | enterprise/tests/unit/test_gitlab_resolver.py | 34 | # Create a mock request with a payload containing object_attributes.id |
| MEDIUM | enterprise/tests/unit/test_gitlab_resolver.py | 109 | # Create a mock request with a payload without object_attributes.id |
| MEDIUM | enterprise/tests/unit/test_gitlab_resolver.py | 256 | # Create a payload with object_attributes.id |
| MEDIUM | enterprise/tests/unit/test_saas_secrets_store.py | 58 | # Create a Secrets object with some test data |
| MEDIUM | enterprise/tests/unit/test_saas_secrets_store.py | 97 | # Create a Secrets object with sensitive data |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 49 | # Create a test org |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 100 | # Create a test org |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 277 | # Create a test org |
| MEDIUM | enterprise/tests/unit/test_org_store.py | 1020 | # Create a second org for the user's current_org_id |
| MEDIUM | enterprise/tests/unit/test_auth_middleware.py | 313 | # Create a fresh mock request for each test |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 21 | # Create a mock request |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 26 | # Create a mock stripe session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 30 | # Create a mock for stripe.checkout.Session.create_async |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 33 | # Create a mock for the CreateBillingSessionResponse class |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 38 | # Create a mock implementation of create_customer_setup_session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 46 | # Create the session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 75 | # Create a mock request |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 80 | # Create a mock stripe session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 85 | # Create a mock for stripe.checkout.Session.create_async |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 88 | # Create a mock for the CreateBillingSessionResponse class |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 93 | # Create a mock for the CreateCheckoutSessionRequest class |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 98 | # Create a mock implementation of create_checkout_session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 106 | # Create the session |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 161 | # Create a mock request |
| MEDIUM | …terprise/tests/unit/test_billing_stripe_integration.py | 168 | # Create a mock implementation of has_payment_method route |
| MEDIUM | enterprise/tests/unit/mock_stripe_service.py | 58 | # Create the customer in stripe |
| MEDIUM | enterprise/tests/unit/test_models.py | 31 | # Create a test org |
| MEDIUM | enterprise/tests/unit/test_models.py | 36 | # Create a test user |
| 147 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | enterprise/run_maintenance_tasks.py | 19 | except Exception as e: |
| LOW | enterprise/run_maintenance_tasks.py | 52 | except Exception as e: |
| MEDIUM | enterprise/run_maintenance_tasks.py | 15 | def main(): |
| LOW | enterprise/enterprise_local/convert_to_env.py | 50 | except Exception as decode_error: |
| MEDIUM | enterprise/enterprise_local/convert_to_env.py | 51 | print(f"Error decoding base64 for '{param}': {decode_error}") |
| LOW | enterprise/enterprise_local/convert_to_env.py | 71 | except Exception as e: |
| MEDIUM | enterprise/enterprise_local/convert_to_env.py | 72 | print(f'Error: {e}') |
| LOW | …/tests/unit/test_maintenance_task_runner_standalone.py | 113 | except Exception: |
| LOW | …/tests/unit/test_maintenance_task_runner_standalone.py | 159 | except Exception: |
| LOW | …/tests/unit/test_maintenance_task_runner_standalone.py | 292 | except Exception as e: |
| LOW | …/tests/unit/test_maintenance_task_runner_standalone.py | 360 | except Exception as e: |
| LOW | …/tests/unit/test_maintenance_task_runner_standalone.py | 617 | except Exception as e: |
| LOW | …unit/test_user_version_upgrade_processor_standalone.py | 170 | except Exception as e: |
| LOW | enterprise/server/rate_limit.py | 67 | except Exception: |
| LOW | enterprise/server/rate_limit.py | 73 | except Exception: |
| LOW | enterprise/server/middleware.py | 83 | except Exception as logout_error: |
| LOW | enterprise/server/middleware.py | 128 | except Exception as e: |
| LOW | enterprise/server/middleware.py | 195 | except Exception: |
| LOW | enterprise/server/auth/token_manager.py | 798 | except Exception as e: |
| LOW | enterprise/server/auth/token_manager.py | 132 | except Exception: |
| LOW | enterprise/server/auth/token_manager.py | 656 | except Exception as e: |
| LOW | enterprise/server/auth/token_manager.py | 759 | except Exception as e: |
| LOW | enterprise/server/auth/token_manager.py | 855 | except Exception as e: |
| LOW | enterprise/server/auth/token_manager.py | 1000 | except Exception: |
| LOW | enterprise/server/auth/saas_user_auth.py | 384 | except Exception as e: |
| LOW | enterprise/server/auth/saas_user_auth.py | 429 | except Exception as e: |
| LOW | enterprise/server/auth/saas_user_auth.py | 447 | except Exception as e: |
| LOW | enterprise/server/auth/saas_user_auth.py | 578 | except Exception as e: |
| LOW | enterprise/server/auth/saas_user_auth.py | 657 | except Exception as exc: |
| LOW | enterprise/server/auth/saas_user_auth.py | 667 | except Exception as exc: |
| LOW | enterprise/server/auth/gitlab_sync.py | 68 | except Exception: |
| MEDIUM | enterprise/server/auth/gitlab_sync.py | 46 | def _run(): |
| LOW | enterprise/server/auth/sheets_client.py | 26 | except Exception: |
| LOW | enterprise/server/auth/sheets_client.py | 107 | except Exception: |
| LOW | enterprise/server/auth/user/user_authorizer.py | 43 | except Exception as ex: |
| LOW | enterprise/server/auth/user/default_user_authorizer.py | 82 | except Exception: |
| LOW | enterprise/server/utils/rate_limit_utils.py | 80 | except Exception as e: |
| LOW | …prise/server/app_lifespan/saas_app_lifespan_service.py | 43 | except Exception: |
| MEDIUM | …prise/server/app_lifespan/saas_app_lifespan_service.py | 38 | def __aexit__(self, exc_type, exc_value, traceback): |
| LOW | enterprise/server/routes/auth.py | 147 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 172 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 211 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 242 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 314 | except Exception as e: |
| LOW | enterprise/server/routes/auth.py | 389 | except Exception as e: |
| LOW | enterprise/server/routes/auth.py | 566 | except Exception as e: |
| LOW | enterprise/server/routes/auth.py | 673 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 823 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 951 | except Exception: |
| LOW | enterprise/server/routes/auth.py | 982 | except Exception as e: |
| LOW | enterprise/server/routes/service.py | 182 | except Exception as e: |
| LOW | enterprise/server/routes/analytics_events.py | 104 | except Exception: |
| LOW | enterprise/server/routes/oauth_device.py | 117 | except Exception as e: |
| LOW | enterprise/server/routes/oauth_device.py | 233 | except Exception as e: |
| LOW | enterprise/server/routes/oauth_device.py | 299 | except Exception as e: |
| LOW | enterprise/server/routes/oauth_device.py | 312 | except Exception as cleanup_error: |
| LOW | enterprise/server/routes/oauth_device.py | 353 | except Exception: |
| LOW | enterprise/server/routes/oauth_device.py | 366 | except Exception as e: |
| LOW | enterprise/server/routes/billing.py | 333 | except Exception: |
| LOW | enterprise/server/routes/user_app_settings.py | 61 | except Exception as e: |
| 373 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | enterprise/server/email_validation.py | 14 | Dependency that validates user has @openhands.dev email domain. This dependency can be used in place of get_us |
| HIGH | enterprise/server/auth/token_manager.py | 154 | Get user info from Keycloak userinfo endpoint. Args: access_token: A valid Keycloak access token |
| HIGH | enterprise/server/auth/token_manager.py | 720 | Check if a user with the same base email already exists. This method checks for duplicate signups using email + |
| HIGH | enterprise/server/auth/email_validation.py | 7 | Extract base email from an email address. For emails with + modifier, extracts the base email (local part before + |
| HIGH | enterprise/server/auth/authorization.py | 349 | Authorization dependency for accessing organization financial data. Allows access if ANY of these conditions a |
| HIGH | …terprise/server/utils/saas_pending_message_injector.py | 123 | Queue a message with ownership validation. Args: conversation_id: The conversation ID to queue the |
| HIGH | …terprise/server/utils/saas_pending_message_injector.py | 140 | Get pending messages with ownership validation. Args: conversation_id: The conversation ID to get m |
| HIGH | …terprise/server/utils/saas_pending_message_injector.py | 155 | Count pending messages with ownership validation. Args: conversation_id: The conversation ID to cou |
| HIGH | …se/server/utils/saas_app_conversation_info_injector.py | 52 | Apply user_id and org_id filters to ensure conversation isolation. Filters conversations by: - user_id: |
| HIGH | enterprise/server/routes/service.py | 60 | Validate the service API key from the request header. Args: x_service_api_key: The service API key fro |
| HIGH | enterprise/server/routes/service.py | 118 | Get or create an API key for a user on behalf of the automations service. If a key with the given name already |
| HIGH | enterprise/server/routes/service.py | 221 | Delete a system API key created by the service. This endpoint allows the automations service to clean up API k |
| HIGH | enterprise/server/routes/user_app_settings.py | 32 | Get the current user's app settings. Returns language, analytics consent, sound notifications, and git config. |
| HIGH | enterprise/server/routes/user_app_settings.py | 77 | Update the current user's app settings (partial update). Only provided fields will be updated. Pass null to clear a |
| HIGH | enterprise/server/routes/orgs.py | 82 | List organizations for the authenticated user. This endpoint returns a paginated list of all organizations that the |
| HIGH | enterprise/server/routes/orgs.py | 157 | Create a new organization. This endpoint allows authenticated users with @openhands.dev email to create a new o |
| HIGH | enterprise/server/routes/orgs.py | 400 | Get organization app settings for the user's current organization. This endpoint retrieves application settings for |
| HIGH | enterprise/server/routes/orgs.py | 444 | Update organization app settings for the user's current organization. This endpoint updates application settings fo |
| HIGH | enterprise/server/routes/orgs.py | 532 | Get the current user's membership record for an organization. Returns the authenticated user's role, status, email, |
| HIGH | enterprise/server/routes/orgs.py | 594 | Delete an organization. This endpoint permanently deletes an organization and all associated data including org |
| HIGH | enterprise/server/routes/orgs.py | 707 | Update an existing organization. This endpoint updates organization settings. Access requires the EDIT_ORG_SETTINGS |
| HIGH | enterprise/server/routes/orgs.py | 813 | Get all members of an organization with pagination and optional email filter. This endpoint retrieves a paginated l |
| HIGH | enterprise/server/routes/orgs.py | 906 | Get count of organization members with optional email filter. This endpoint returns the total count of organization |
| HIGH | enterprise/server/routes/orgs.py | 982 | Get paginated financial data for organization members. Returns financial information (lifetime spend, current budge |
| HIGH | enterprise/server/routes/orgs.py | 1136 | Switch to a different organization. This endpoint allows authenticated users to switch their current active org |
| HIGH | enterprise/server/routes/orgs.py | 1358 | Claim a Git organization for an OpenHands organization. Only admin and owner roles can claim Git organizations. |
| HIGH | enterprise/server/routes/orgs.py | 1446 | Remove a Git organization claim from an OpenHands organization. Only admin and owner roles can disconnect Git organ |
| HIGH | enterprise/server/routes/org_invitations.py | 57 | Create organization invitations for multiple email addresses. Sends emails to invitees with secure links to join th |
| HIGH | enterprise/server/routes/org_invitations.py | 203 | Accept an organization invitation via authenticated POST request. This endpoint is called by the frontend after dis |
| HIGH | enterprise/server/routes/integration/jira.py | 130 | Verify Jira webhook signature. Args: body: Raw request body bytes signature: Signature from x- |
| HIGH | …rprise/server/services/org_member_financial_service.py | 26 | Get paginated financial data for organization members. Fetches member list from database and joins with financi |
| HIGH | enterprise/server/services/org_app_settings_service.py | 89 | Update organization app settings. Only updates fields that are explicitly provided in update_data. User |
| HIGH | enterprise/server/services/org_member_service.py | 32 | Get the current user's membership record for an organization. Retrieves the authenticated user's role, status, |
| HIGH | enterprise/server/services/org_member_service.py | 146 | Get count of organization members with authorization check. Args: org_id: Organization UUID. |
| HIGH | enterprise/server/services/org_member_service.py | 257 | Update a member's role in an organization. Permission rules: - Owners can modify anyone (including othe |
| HIGH | enterprise/server/services/org_invitation_service.py | 37 | Create a new organization invitation. This method: 1. Validates the organization exists 2. Vali |
| HIGH | enterprise/server/services/org_invitation_service.py | 164 | Create multiple organization invitations concurrently. Validates permissions once upfront, then creates invitat |
| HIGH | enterprise/server/services/org_invitation_service.py | 259 | Accept an organization invitation. This method: 1. Validates the token and invitation status 2. |
| HIGH | enterprise/server/services/user_app_settings_service.py | 64 | Update user app settings. Only updates fields that are explicitly provided in update_data. User ID is o |
| HIGH | enterprise/storage/auth_token_store.py | 109 | Load authentication tokens from the database and refresh them if necessary. This method uses a double-checked l |
| HIGH | enterprise/storage/device_code_store.py | 34 | Create a new device code entry. Uses database constraints to ensure uniqueness, avoiding TOCTOU race conditions |
| HIGH | enterprise/storage/org_service.py | 56 | Create LiteLLM team integration for the organization. Args: org_id: Organization ID |
| HIGH | enterprise/storage/org_service.py | 193 | Create a new organization with the specified user as owner. This method orchestrates the complete orga |
| HIGH | enterprise/storage/org_service.py | 299 | Persist organization with compensation on failure. If database persistence fails, cleans up LiteLLM re |
| HIGH | enterprise/storage/org_service.py | 485 | Update organization with permission checks for LLM settings. Args: org_id: Organization UU |
| HIGH | enterprise/storage/org_service.py | 686 | Get organization by ID with membership validation. This method verifies that the user is a member of t |
| HIGH | enterprise/storage/org_service.py | 773 | Delete organization with complete cleanup of all associated data. This method performs the complete or |
| HIGH | enterprise/storage/org_service.py | 854 | Switch user's current organization to the specified organization. This method: 1. Validates th |
| HIGH | enterprise/storage/org_store.py | 405 | Persist organization and owner membership in a single transaction. Args: org: Organization entity t |
| HIGH | enterprise/storage/org_store.py | 426 | Delete organization and all associated data in cascade, including external LiteLLM cleanup. Args: o |
| HIGH | enterprise/storage/resend_synced_user_store.py | 59 | Mark a user as synced to a specific audience. Uses upsert to handle race conditions - if the user is already |
| HIGH | enterprise/integrations/jira/jira_view.py | 465 | Create a Jira view with repository already selected. This factory method: 1. Creates the view with payl |
| HIGH | enterprise/integrations/github/github_service.py | 108 | Get the new GitHub GraphQL node ID for a repository using REST API. Args: repo_id: Numeric |
| HIGH | enterprise/integrations/slack/slack_manager.py | 145 | Retrieve stored user message from Redis. Args: message_ts: The message timestamp thread |
| HIGH | enterprise/sync/resend_keycloak.py | 117 | Get users from Keycloak using the admin client. Args: offset: The offset to start from. limit: The |
| HIGH | enterprise/sync/resend_keycloak.py | 188 | Get contacts from Resend. Args: audience_id: The Resend audience ID. Returns: A dictionary map |
| HIGH | enterprise/sync/resend_keycloak.py | 224 | Add a contact to the Resend audience with retry logic. Args: audience_id: The Resend audience ID. e |
| HIGH | enterprise/sync/resend_keycloak.py | 267 | Send a welcome email to a new contact. Args: email: The email address of the contact. first_name: T |
| HIGH | …/app_server/pending_messages/pending_message_router.py | 42 | Queue a message for delivery when conversation becomes ready. This endpoint allows users to submit messages even wh |
| HIGH | …ver/integrations/bitbucket_data_center/service/base.py | 45 | Extract owner and repo from repository string. Args: repository: Repository name in format 'project |
| 13 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | enterprise/tests/unit/conftest.py | 0 | create an async session maker bound to the async engine. |
| HIGH | …tests/unit/server/auth/test_saas_user_auth_org_info.py | 0 | create an async session maker bound to the async engine. |
| HIGH | enterprise/tests/unit/storage/test_auth_token_store.py | 0 | create an async session maker bound to the async engine. |
| HIGH | …se/tests/unit/storage/test_user_authorization_store.py | 0 | create an async session maker bound to the async engine. |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata (conversation_id, user_id, conversation_version, created_at, last_updated_at) values ( |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata (conversation_id, user_id, conversation_version, created_at, last_updated_at) values ( |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata (conversation_id, user_id, conversation_version, created_at, last_updated_at) values ( |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata_saas (conversation_id, user_id, org_id) select conversation_id, :user_uuid, :user_uuid |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata_saas (conversation_id, user_id, org_id) select conversation_id, :user_uuid, :user_uuid |
| HIGH | enterprise/tests/unit/test_user_store.py | 0 | insert into conversation_metadata_saas (conversation_id, user_id, org_id) select conversation_id, :user_uuid, :user_uuid |
| HIGH | enterprise/storage/user_store.py | 0 | insert into conversation_metadata_saas (conversation_id, user_id, org_id) select conversation_id, :user_uuid, :user_uuid |
| HIGH | …storage/test_saas_sql_app_conversation_info_service.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | …/app_server/test_webhook_router_parent_conversation.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | …t/app_server/test_sql_app_conversation_info_service.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | tests/unit/app_server/test_webhook_router_stats.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | tests/unit/app_server/test_webhook_router_auto_title.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | tests/unit/app_server/test_webhook_router_tags.py | 0 | create a sqlappconversationinfoservice instance for testing. |
| HIGH | …tegrations/gitlab/test_gitlab_v1_callback_processor.py | 0 | test that budget exceeded errors are logged at info level and user gets friendly message. |
| HIGH | …tegrations/github/test_github_v1_callback_processor.py | 0 | test that budget exceeded errors are logged at info level and user gets friendly message. |
| HIGH | …integrations/slack/test_slack_v1_callback_processor.py | 0 | test that budget exceeded errors are logged at info level and user gets friendly message. |
| HIGH | enterprise/server/sharing/shared_event_service.py | 0 | given a conversation_id and event_id, retrieve an event if the conversation is shared. |
| HIGH | enterprise/server/sharing/aws_shared_event_service.py | 0 | given a conversation_id and event_id, retrieve an event if the conversation is shared. |
| HIGH | …se/server/sharing/google_cloud_shared_event_service.py | 0 | given a conversation_id and event_id, retrieve an event if the conversation is shared. |
| HIGH | …rise/server/sharing/filesystem_shared_event_service.py | 0 | given a conversation_id and event_id, retrieve an event if the conversation is shared. |
| HIGH | enterprise/storage/jira_integration_store.py | 0 | deactivate the workspace and all user links for a given workspace. |
| HIGH | enterprise/storage/jira_dc_integration_store.py | 0 | deactivate the workspace and all user links for a given workspace. |
| HIGH | enterprise/storage/linear_integration_store.py | 0 | deactivate the workspace and all user links for a given workspace. |
| HIGH | enterprise/storage/jira_dc_integration_store.py | 0 | get jira dc user by keycloak user id and workspace id. |
| HIGH | enterprise/storage/jira_dc_integration_store.py | 0 | get jira dc user by keycloak user id and workspace id. |
| HIGH | enterprise/storage/jira_dc_integration_store.py | 0 | get jira dc user by keycloak user id and workspace id. |
| HIGH | enterprise/integrations/gitlab/gitlab_view.py | 0 | create conversation using the new v1 app conversation system. |
| HIGH | enterprise/integrations/jira/jira_view.py | 0 | create conversation using the new v1 app conversation system. |
| HIGH | enterprise/integrations/github/github_view.py | 0 | create conversation using the new v1 app conversation system. |
| HIGH | enterprise/integrations/slack/slack_view.py | 0 | create conversation using the new v1 app conversation system. |
| HIGH | …se/integrations/gitlab/gitlab_v1_callback_processor.py | 0 | send a message to the agent server via the v1 api and return response text. |
| HIGH | …rprise/integrations/jira/jira_v1_callback_processor.py | 0 | send a message to the agent server via the v1 api and return response text. |
| HIGH | …se/integrations/github/github_v1_callback_processor.py | 0 | send a message to the agent server via the v1 api and return response text. |
| HIGH | …/integrations/jira_dc/jira_dc_v1_callback_processor.py | 0 | send a message to the agent server via the v1 api and return response text. |
| HIGH | …rise/integrations/slack/slack_v1_callback_processor.py | 0 | send a message to the agent server via the v1 api and return response text. |
| HIGH | …se/integrations/gitlab/gitlab_v1_callback_processor.py | 0 | ask the agent to produce a summary of its work and return the agent response. note: this method now returns a string (th |
| HIGH | …se/integrations/github/github_v1_callback_processor.py | 0 | ask the agent to produce a summary of its work and return the agent response. note: this method now returns a string (th |
| HIGH | …rise/integrations/slack/slack_v1_callback_processor.py | 0 | ask the agent to produce a summary of its work and return the agent response. note: this method now returns a string (th |
| HIGH | tests/unit/integrations/gitlab/test_gitlab.py | 0 | test that get_repositories correctly sets owner_type field for user repositories. |
| HIGH | tests/unit/integrations/github/test_github_service.py | 0 | test that get_repositories correctly sets owner_type field for user repositories. |
| HIGH | tests/unit/integrations/bitbucket/test_bitbucket.py | 0 | test that get_repositories correctly sets owner_type field for user repositories. |
| HIGH | tests/unit/integrations/gitlab/test_gitlab.py | 0 | test that get_repositories correctly sets owner_type field for organization repositories. |
| HIGH | tests/unit/integrations/github/test_github_service.py | 0 | test that get_repositories correctly sets owner_type field for organization repositories. |
| HIGH | tests/unit/integrations/bitbucket/test_bitbucket.py | 0 | test that get_repositories correctly sets owner_type field for organization repositories. |
| HIGH | tests/unit/integrations/gitlab/test_gitlab.py | 0 | test that get_repositories correctly handles mixed user and organization repositories. |
| HIGH | tests/unit/integrations/github/test_github_service.py | 0 | test that get_repositories correctly handles mixed user and organization repositories. |
| HIGH | tests/unit/integrations/bitbucket/test_bitbucket.py | 0 | test that get_repositories correctly handles mixed user and organization repositories. |
| HIGH | …er/integrations/bitbucket_data_center/service/repos.py | 0 | get suggested tasks for the authenticated user across all repositories. |
| HIGH | …nds/app_server/integrations/bitbucket/service/repos.py | 0 | get suggested tasks for the authenticated user across all repositories. |
| HIGH | …p_server/integrations/azure_devops/service/features.py | 0 | get suggested tasks for the authenticated user across all repositories. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | enterprise/tests/unit/conftest.py | 9 | |
| LOW | enterprise/tests/unit/conftest.py | 21 | |
| LOW | enterprise/tests/unit/conftest.py | 25 | |
| LOW | enterprise/tests/unit/conftest.py | 29 | |
| LOW | enterprise/tests/unit/conftest.py | 30 | |
| LOW | enterprise/tests/unit/conftest.py | 33 | |
| LOW | enterprise/tests/unit/conftest.py | 41 | |
| LOW | …tests/unit/test_sharing/test_shared_event_filtering.py | 9 | |
| LOW | …unit/server/auth/test_reject_x_org_id_path_mismatch.py | 14 | |
| LOW | …e/tests/unit/storage/test_saas_stores_effective_org.py | 17 | |
| LOW | …ts/unit/storage/test_jira_dc_active_link_constraint.py | 1 | |
| LOW | …ons/github/test_github_view_v1_initial_user_message.py | 1 | |
| LOW | …server/sharing/sql_shared_conversation_info_service.py | 9 | |
| LOW | enterprise/server/sharing/aws_shared_event_service.py | 11 | |
| LOW | …se/server/sharing/google_cloud_shared_event_service.py | 9 | |
| LOW | …rise/server/sharing/filesystem_shared_event_service.py | 9 | |
| LOW | enterprise/server/auth/org_context.py | 24 | |
| LOW | enterprise/server/auth/cookie_chunking.py | 18 | |
| LOW | …prise/server/app_lifespan/saas_app_lifespan_service.py | 7 | |
| LOW | enterprise/server/routes/integration/bitbucket_dc.py | 1 | |
| LOW | enterprise/server/routes/integration/bitbucket.py | 1 | |
| LOW | enterprise/server/services/org_app_settings_service.py | 7 | |
| LOW | enterprise/server/services/user_app_settings_service.py | 7 | |
| LOW | enterprise/storage/user_settings.py | 1 | |
| LOW | enterprise/storage/openhands_pr_store.py | 1 | |
| LOW | enterprise/storage/saas_settings_store.py | 1 | |
| LOW | enterprise/storage/user.py | 16 | |
| LOW | enterprise/storage/user.py | 17 | |
| LOW | enterprise/storage/user.py | 18 | |
| LOW | enterprise/storage/user.py | 19 | |
| LOW | enterprise/storage/user_repo_map_store.py | 1 | |
| LOW | enterprise/storage/bitbucket_webhook_store.py | 1 | |
| LOW | enterprise/storage/org.py | 16 | |
| LOW | enterprise/storage/org.py | 17 | |
| LOW | enterprise/storage/org.py | 18 | |
| LOW | enterprise/storage/org.py | 19 | |
| LOW | enterprise/storage/org.py | 20 | |
| LOW | enterprise/storage/org.py | 21 | |
| LOW | enterprise/storage/org.py | 22 | |
| LOW | enterprise/storage/org.py | 23 | |
| LOW | enterprise/storage/org.py | 24 | |
| LOW | enterprise/storage/org.py | 25 | |
| LOW | enterprise/storage/org.py | 26 | |
| LOW | enterprise/storage/bitbucket_dc_webhook_store.py | 1 | |
| LOW | enterprise/storage/stripe_customer.py | 10 | |
| LOW | enterprise/storage/org_app_settings_store.py | 3 | |
| LOW | enterprise/storage/slack_user.py | 10 | |
| LOW | enterprise/storage/slack_conversation.py | 9 | |
| LOW | enterprise/storage/auth_token_store.py | 1 | |
| LOW | enterprise/storage/stored_custom_secrets.py | 9 | |
| LOW | enterprise/storage/maintenance_task.py | 1 | |
| LOW | enterprise/storage/jira_integration_store.py | 1 | |
| LOW | enterprise/storage/jira_dc_integration_store.py | 1 | |
| LOW | enterprise/storage/stored_conversation_metadata_saas.py | 16 | |
| LOW | enterprise/storage/stored_conversation_metadata_saas.py | 17 | |
| LOW | enterprise/storage/__init__.py | 1 | |
| LOW | enterprise/storage/__init__.py | 2 | |
| LOW | enterprise/storage/__init__.py | 3 | |
| LOW | enterprise/storage/__init__.py | 4 | |
| LOW | enterprise/storage/__init__.py | 5 | |
| 190 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .openhands/pre-commit.sh | 13 | # Check if any files match specific patterns |
| LOW | .openhands/pre-commit.sh | 32 | # Check if we're in a CI environment or if frontend dependencies are missing |
| LOW | enterprise/enterprise_local/decrypt_env.sh | 4 | # Check if DEPLOY_DIR argument was provided |
| LOW | enterprise/tests/unit/test_auth_routes.py | 561 | # Set validate_offline_token to return False to test the "without offline token" scenario |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 166 | user_settings.user_version = 4 # Set version to avoid None comparison |
| LOW | enterprise/server/config.py | 114 | # Check if the response is successful |
| LOW | enterprise/server/constants.py | 7 | # Check if this is a feature environment |
| LOW | enterprise/server/auth/recaptcha_service.py | 125 | # Check if any suspicious labels are present |
| LOW | enterprise/server/auth/authorization.py | 392 | # Check if user has @openhands.dev email |
| LOW | enterprise/server/auth/authorization.py | 403 | # Check if user has Admin or Owner role in the organization |
| LOW | enterprise/server/auth/saas_user_auth.py | 695 | # Check if email is blacklisted (whitelist takes precedence) |
| LOW | enterprise/server/auth/gitlab_sync.py | 48 | # Check if the user has a GitLab provider token before syncing |
| LOW | …se/server/utils/saas_app_conversation_info_injector.py | 195 | # Check if there are more results |
| LOW | …se/server/utils/saas_app_conversation_info_injector.py | 389 | # Check if SAAS metadata already exists |
| LOW | enterprise/server/routes/users_v1.py | 153 | # Check if this is an AuthUserContext with a SaasUserAuth |
| LOW | enterprise/server/routes/orgs.py | 1376 | # Check if this Git org is already claimed (early feedback for the common case) |
| LOW | enterprise/server/routes/api_keys.py | 300 | # Check if authenticated via API key |
| LOW | enterprise/server/routes/api_keys.py | 352 | # Check if the BYOR key exists in the database |
| LOW | enterprise/server/routes/integration/gitlab.py | 292 | # Check if user has admin access to this resource |
| LOW | enterprise/server/routes/integration/jira_dc.py | 217 | # Check if user currently has an active workspace link |
| LOW | enterprise/server/routes/integration/jira_dc.py | 235 | # Check if user had a previous link to this specific workspace |
| LOW | enterprise/server/routes/integration/jira_dc.py | 267 | # Check if user is the admin of the workspace |
| LOW | enterprise/server/routes/integration/jira_dc.py | 274 | # Check if user's current link matches the workspace |
| LOW | enterprise/server/routes/integration/jira_dc.py | 293 | # Check if Jira DC webhooks are enabled |
| LOW | enterprise/server/routes/integration/jira_dc.py | 1104 | # Check if workspace exists |
| LOW | enterprise/server/routes/integration/jira_dc.py | 1114 | # Check if workspace is active |
| LOW | enterprise/server/routes/integration/jira.py | 211 | # Check if user currently has an active workspace link |
| LOW | enterprise/server/routes/integration/jira.py | 229 | # Check if user had a previous link to this specific workspace |
| LOW | enterprise/server/routes/integration/jira.py | 261 | # Check if user is the admin of the workspace |
| LOW | enterprise/server/routes/integration/jira.py | 268 | # Check if user's current link matches the workspace |
| LOW | enterprise/server/routes/integration/jira.py | 288 | # Check if Jira webhooks are enabled |
| LOW | enterprise/server/routes/integration/jira.py | 735 | # Check if workspace exists |
| LOW | enterprise/server/routes/integration/jira.py | 745 | # Check if workspace is active |
| LOW | enterprise/server/routes/integration/github.py | 59 | # Check if GitHub webhooks are enabled |
| LOW | enterprise/server/services/org_app_settings_service.py | 112 | # Check if any fields are provided |
| LOW | enterprise/server/services/org_member_service.py | 189 | # Check if trying to remove self |
| LOW | enterprise/server/services/org_member_service.py | 210 | # Check if removing the last owner |
| LOW | enterprise/server/services/org_member_service.py | 223 | # Set current_org_id to personal workspace (org.id == user.id) |
| LOW | enterprise/server/services/org_member_service.py | 291 | # Check if trying to modify self |
| LOW | enterprise/server/services/org_member_service.py | 334 | # Check if demoting the last owner |
| LOW | enterprise/server/services/user_app_settings_service.py | 89 | # Check if any fields are provided |
| LOW | enterprise/storage/openhands_pr_store.py | 19 | # Check if PR already exists |
| LOW | enterprise/storage/openhands_pr_store.py | 104 | # Check if the updated_at timestamp has changed (indicating concurrent modification) |
| LOW | enterprise/storage/saas_settings_store.py | 302 | # Check if we need to migrate from user_settings |
| LOW | enterprise/storage/org_member_store.py | 234 | # Check if there are more results |
| LOW | enterprise/storage/lite_llm_manager.py | 35 | # Check if billing is enabled (defaults to false for enterprise deployments) |
| LOW | enterprise/storage/lite_llm_manager.py | 155 | # Check if team already exists and get its budget |
| LOW | enterprise/storage/lite_llm_manager.py | 317 | # Check if max_budget is None (not 0.0) or set to unlimited to determine if already migrated |
| LOW | enterprise/storage/lite_llm_manager.py | 382 | # Check if the database key exists in LiteLLM |
| LOW | enterprise/storage/auth_token_store.py | 151 | # Check if token needs refresh |
| LOW | enterprise/storage/org_service.py | 749 | # Check if organization exists |
| LOW | enterprise/storage/org_service.py | 754 | # Check if user is a member of the organization |
| LOW | enterprise/storage/org_service.py | 759 | # Check if user has owner role |
| LOW | enterprise/storage/org_service.py | 516 | # Check if user is a member of this organization |
| LOW | enterprise/storage/org_service.py | 529 | # Check if name is being updated and validate uniqueness |
| LOW | enterprise/storage/org_service.py | 531 | # Check if new name conflicts with another org |
| LOW | enterprise/storage/device_code.py | 113 | # Check if polling too fast |
| LOW | enterprise/storage/user_store.py | 179 | # Check if user has completed billing sessions to enable BYOR export |
| LOW | enterprise/storage/user_store.py | 649 | # Check if we need to migrate from user_settings |
| LOW | enterprise/storage/user_store.py | 1119 | # Check if model matches old version's default |
| 61 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | frontend/__tests__/utils/input-validation.test.ts | 12 | expect(isValidEmail("user@example.com")).toBe(true); |
| LOW | frontend/__tests__/utils/input-validation.test.ts | 87 | const emails = ["user@example.com", "test@domain.org"]; |
| LOW | frontend/__tests__/utils/input-validation.test.ts | 116 | const emails = ["user@example.com", "test@domain.org", "admin@company.io"]; |
| LOW | frontend/__tests__/utils/input-validation.test.ts | 121 | const emails = ["user@example.com", "invalid", "test@domain.org"]; |
| LOW | frontend/__tests__/utils/permission-guard.test.ts | 91 | email: "admin@example.com", |
| LOW | …_tests__/components/features/org/org-selector.test.tsx | 150 | expect(options[1]).toHaveTextContent("Acme Corp"); |
| LOW | …_tests__/components/features/org/org-selector.test.tsx | 175 | const acmeOption = within(listbox).getByText("Acme Corp"); |
| LOW | …_tests__/components/features/org/org-selector.test.tsx | 203 | const acmeOption = within(listbox).getByText("Acme Corp"); |
| LOW | …_tests__/components/features/org/org-selector.test.tsx | 237 | const acmeOption = within(listbox).getByText("Acme Corp"); |
| LOW | …_tests__/components/features/org/org-selector.test.tsx | 270 | expect(screen.getByRole("combobox")).toHaveValue("Acme Corp"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 122 | await user.type(nameInput, "John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 124 | expect(nameInput).toHaveValue("John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 221 | await user.type(screen.getByTestId("form-input-name"), "John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 222 | await user.type(screen.getByTestId("form-input-company"), "Acme Inc"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 240 | await user.type(nameInput, "John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 250 | await user.type(screen.getByTestId("form-input-name"), "John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 251 | await user.type(screen.getByTestId("form-input-company"), "Acme Inc"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 271 | await user.type(screen.getByTestId("form-input-name"), "John Doe"); |
| LOW | …/features/onboarding/information-request-form.test.tsx | 272 | await user.type(screen.getByTestId("form-input-company"), "Acme Inc"); |
| LOW | …omponents/features/onboarding/onboarding-form.test.tsx | 387 | await user.type(orgNameInput, "Acme Corp"); |
| LOW | …omponents/features/onboarding/onboarding-form.test.tsx | 402 | org_name: "Acme Corp", |
| LOW | …ntend/__tests__/hooks/query/use-organizations.test.tsx | 76 | createMinimalOrg("2", "Acme Corp", false), |
| LOW | …ntend/__tests__/hooks/query/use-organizations.test.tsx | 93 | expect(organizations[1].name).toBe("Acme Corp"); |
| LOW | enterprise/tests/unit/test_recaptcha_service.py | 41 | email = 'user@example.com' |
| LOW | enterprise/tests/unit/test_recaptcha_service.py | 63 | email2 = 'user@example.com' |
| LOW | enterprise/tests/unit/test_recaptcha_service.py | 215 | email='user@example.com', |
| LOW | enterprise/tests/unit/test_recaptcha_service.py | 224 | assert assessment.event.user_info.user_ids[0].email == 'user@example.com' |
| LOW | enterprise/tests/unit/test_token_manager_extended.py | 293 | 'email': 'user@example.com', |
| LOW | enterprise/tests/unit/test_identity_utils.py | 23 | 'name': 'Jane Doe', |
| LOW | enterprise/tests/unit/test_identity_utils.py | 28 | assert resolve_display_name(user_info) == 'Jane Doe' |
| LOW | enterprise/tests/unit/test_identity_utils.py | 38 | assert resolve_display_name(user_info) == 'Jane Doe' |
| LOW | enterprise/tests/unit/test_identity_utils.py | 106 | assert resolve_display_name(user_info) == 'Jane Doe' |
| LOW | enterprise/tests/unit/test_saas_user_auth.py | 888 | assert result.email == 'user@example.com' |
| LOW | enterprise/tests/unit/test_saas_user_auth.py | 890 | 'user@example.com', None |
| LOW | enterprise/tests/unit/test_saas_user_auth.py | 866 | 'email': 'user@example.com', |
| LOW | enterprise/tests/unit/test_user_store.py | 650 | user_info = {'name': 'John Doe'} |
| LOW | enterprise/tests/unit/test_user_store.py | 567 | 'name': 'John Doe', |
| LOW | enterprise/tests/unit/test_user_store.py | 578 | assert org.contact_name == 'John Doe' |
| LOW | enterprise/tests/unit/test_user_store.py | 632 | 'name': 'John Doe', |
| LOW | enterprise/tests/unit/test_org_store.py | 378 | contact_name='John Doe', |
| LOW | enterprise/tests/unit/test_org_store.py | 437 | contact_name='Jane Doe', |
| LOW | enterprise/tests/unit/test_org_store.py | 485 | contact_name='John Doe', |
| LOW | enterprise/tests/unit/test_org_store.py | 598 | contact_name='John Doe', |
| LOW | enterprise/tests/unit/test_org_store.py | 613 | assert result.contact_name == 'John Doe' |
| LOW | enterprise/tests/unit/test_org_store.py | 654 | contact_name='John Doe', |
| LOW | enterprise/tests/unit/test_authorization.py | 1022 | def _create_mock_request_with_email(api_key_org_id=None, user_email='user@example.com'): |
| LOW | enterprise/tests/unit/test_email_service.py | 177 | org_name='Acme Corp', |
| LOW | enterprise/tests/unit/test_email_service.py | 178 | inviter_name='John Doe', |
| LOW | enterprise/tests/unit/test_email_service.py | 189 | assert 'Acme Corp' in email_params['subject'] |
| LOW | enterprise/tests/unit/test_email_service.py | 190 | assert 'John Doe' in email_params['html'] |
| LOW | enterprise/tests/unit/test_email_service.py | 191 | assert 'Acme Corp' in email_params['html'] |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1043 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1118 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1184 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1270 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1348 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1424 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1499 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1573 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| LOW | enterprise/tests/unit/test_org_member_store.py | 1656 | user = User(id=uuid.uuid4(), current_org_id=org.id, email='user@example.com') |
| 124 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …/src/components/features/chat/interactive-chat-box.tsx | 113 | // Step 1: Validate and filter files |
| LOW | …/src/components/features/chat/interactive-chat-box.tsx | 119 | // Step 2: Show loading indicators immediately |
| LOW | …/src/components/features/chat/interactive-chat-box.tsx | 122 | // Step 3: Process files using REAL FileReader |
| LOW | …/src/components/features/chat/interactive-chat-box.tsx | 129 | // Step 4: Handle successful results |
| LOW | …/src/components/features/chat/interactive-chat-box.tsx | 133 | // Step 5: Handle failed results |
| LOW | frontend/src/routes/settings.tsx | 54 | // Step 1: Get config first (needed for all checks, no user data required) |
| LOW | frontend/src/routes/settings.tsx | 64 | // Step 2: Check SAAS_ONLY_PATHS for OSS mode (no user data required) |
| LOW | frontend/src/routes/settings.tsx | 69 | // Step 3: Check feature flag-based hiding and redirect IMMEDIATELY (no user data required) |
| LOW | frontend/src/routes/settings.tsx | 114 | // Step 4: For routes that need permission checks, get user data |
| LOW | …storage/test_saas_sql_app_conversation_info_service.py | 1255 | # Step 1: Create conversation via API key bound to ORG1 |
| LOW | …storage/test_saas_sql_app_conversation_info_service.py | 1276 | # Step 2: Switch user to ORG2 in browser session |
| LOW | …storage/test_saas_sql_app_conversation_info_service.py | 1285 | # Step 3: User in ORG2 should NOT see the conversation |
| LOW | …storage/test_saas_sql_app_conversation_info_service.py | 1301 | # Step 4: Switch user back to ORG1 |
| LOW | …storage/test_saas_sql_app_conversation_info_service.py | 1310 | # Step 5: User in ORG1 should see the conversation |
| LOW | enterprise/server/routes/bitbucket_dc_proxy.py | 31 | # Step 1: get username |
| LOW | enterprise/server/routes/bitbucket_dc_proxy.py | 43 | # Step 2: get user details |
| LOW | enterprise/server/services/org_invitation_service.py | 75 | # Step 1: Validate organization exists |
| LOW | enterprise/server/services/org_invitation_service.py | 80 | # Step 2: Check this is not a personal workspace |
| LOW | enterprise/server/services/org_invitation_service.py | 87 | # Step 3: Check inviter is a member and has permission |
| LOW | enterprise/server/services/org_invitation_service.py | 351 | # Step 3: Check if user is already a member |
| LOW | enterprise/server/services/org_invitation_service.py | 360 | # Step 4: Create LiteLLM integration for the user in the new org |
| LOW | enterprise/server/services/org_invitation_service.py | 98 | # Step 4: Validate role assignment permissions |
| LOW | enterprise/server/services/org_invitation_service.py | 108 | # Step 5: Check if user is already a member (by email) |
| LOW | enterprise/server/services/org_invitation_service.py | 119 | # Step 6: Create the invitation |
| LOW | enterprise/server/services/org_invitation_service.py | 127 | # Step 7: Send invitation email |
| LOW | enterprise/server/services/org_invitation_service.py | 191 | # Step 1: Validate permissions upfront (shared for all emails) |
| LOW | enterprise/server/services/org_invitation_service.py | 219 | # Step 2: Create invitations concurrently |
| LOW | enterprise/server/services/org_invitation_service.py | 237 | # Step 3: Separate successes and failures |
| LOW | enterprise/server/services/org_invitation_service.py | 289 | # Step 1: Get and validate invitation |
| LOW | enterprise/server/services/org_invitation_service.py | 303 | # Step 2: Check expiration |
| LOW | enterprise/server/services/org_invitation_service.py | 384 | # Step 5: Add user to organization. New members start with no |
| LOW | enterprise/server/services/org_invitation_service.py | 402 | # Step 6: Mark invitation as accepted |
| LOW | enterprise/storage/lite_llm_manager.py | 481 | # Step 1: Get the team info to retrieve the budget |
| LOW | enterprise/storage/lite_llm_manager.py | 526 | # Step 2: Update user to set their max_budget back from unlimited |
| LOW | enterprise/storage/lite_llm_manager.py | 535 | # Step 3: Add user back to the default team |
| LOW | enterprise/storage/lite_llm_manager.py | 549 | # Step 4: Update all user keys to remove org team association (set team_id to default) |
| LOW | enterprise/storage/lite_llm_manager.py | 560 | # Step 5: Remove user from their org team |
| LOW | enterprise/storage/lite_llm_manager.py | 569 | # Step 6: Delete the org team |
| LOW | enterprise/storage/org_service.py | 226 | # Step 1: Validate name uniqueness (fails early, no cleanup needed) |
| LOW | enterprise/storage/org_service.py | 229 | # Step 2: Generate organization ID |
| LOW | enterprise/storage/org_service.py | 232 | # Step 3: Create LiteLLM integration (external state created) |
| LOW | enterprise/storage/org_service.py | 238 | # Step 4: Create organization entity |
| LOW | enterprise/storage/org_service.py | 246 | # Step 5: Apply LiteLLM settings |
| LOW | enterprise/storage/org_service.py | 249 | # Step 6: Get owner role and create member entity |
| LOW | enterprise/storage/org_service.py | 258 | # Step 7: Persist in transaction (critical section) |
| LOW | enterprise/storage/org_service.py | 879 | # Step 1: Check if organization exists |
| LOW | enterprise/storage/org_service.py | 884 | # Step 2: Validate user is a member of the organization |
| LOW | enterprise/storage/org_service.py | 894 | # Step 3: Update user's current_org_id |
| LOW | enterprise/storage/org_service.py | 797 | # Step 1: Verify user authorization |
| LOW | enterprise/storage/org_service.py | 800 | # Step 2: Perform database cascade deletion with LiteLLM cleanup in transaction |
| LOW | enterprise/storage/user_store.py | 528 | # Step 3: Copy user_id from conversation_metadata_saas to conversation_metadata |
| LOW | enterprise/storage/user_store.py | 544 | # Step 4: Delete conversation_metadata_saas entries |
| LOW | enterprise/storage/user_store.py | 550 | # Step 5: Reset org_id columns in related tables |
| LOW | enterprise/storage/user_store.py | 593 | # Step 6: Delete org_member entries for this org |
| LOW | enterprise/storage/user_store.py | 599 | # Step 7: Delete the user entry |
| LOW | enterprise/storage/user_store.py | 611 | # Step 8: Set already_migrated=False on user_settings and encrypt fields |
| LOW | enterprise/integrations/gitlab/gitlab_service.py | 438 | # For projects, we need to check if the user has maintainer or owner access |
| LOW | enterprise/integrations/gitlab/gitlab_service.py | 415 | # For groups, we need to check if the user is an owner or maintainer |
| LOW | enterprise/integrations/jira/jira_manager.py | 92 | # Step 1: Parse webhook payload |
| LOW | enterprise/integrations/jira/jira_manager.py | 122 | # Step 2: Validate workspace |
| 9 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | enterprise/enterprise_local/convert_to_env.py | 8 | |
| LOW | enterprise/tests/unit/test_run_maintenance_tasks.py | 208 | |
| LOW | enterprise/tests/unit/test_run_maintenance_tasks.py | 265 | |
| LOW | enterprise/tests/unit/test_run_maintenance_tasks.py | 343 | |
| LOW | enterprise/tests/unit/test_run_maintenance_tasks.py | 378 | |
| LOW | enterprise/tests/unit/test_run_maintenance_tasks.py | 424 | |
| LOW | enterprise/tests/unit/test_saas_settings_store.py | 112 | |
| LOW | enterprise/tests/unit/test_saas_settings_store.py | 157 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 608 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 637 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 676 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 750 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 2028 | |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 2049 | |
| LOW | enterprise/tests/unit/routes/test_service.py | 125 | |
| LOW | enterprise/tests/unit/routes/test_service.py | 150 | |
| LOW | enterprise/tests/unit/routes/test_service.py | 196 | |
| LOW | enterprise/server/auth/token_manager.py | 361 | |
| LOW | enterprise/server/auth/saas_user_auth.py | 387 | |
| LOW | enterprise/server/utils/rate_limit_utils.py | 11 | |
| LOW | …se/server/utils/saas_app_conversation_info_injector.py | 131 | |
| LOW | enterprise/server/routes/auth.py | 250 | |
| LOW | enterprise/server/routes/users_v1.py | 107 | |
| LOW | enterprise/server/routes/integration/bitbucket_dc.py | 537 | |
| LOW | enterprise/server/routes/integration/jira_dc.py | 466 | |
| LOW | enterprise/storage/lite_llm_manager.py | 752 | |
| LOW | enterprise/integrations/utils.py | 251 | |
| LOW | enterprise/integrations/gitlab/gitlab_service.py | 227 | |
| LOW | enterprise/integrations/gitlab/gitlab_service.py | 357 | |
| LOW | enterprise/integrations/gitlab/gitlab_service.py | 399 | |
| LOW | enterprise/integrations/gitlab/gitlab_view.py | 387 | |
| LOW | enterprise/integrations/github/data_collector.py | 132 | |
| LOW | enterprise/integrations/github/github_view.py | 729 | |
| LOW | enterprise/sync/resend_keycloak.py | 395 | |
| LOW | …pp_server/test_live_status_app_conversation_service.py | 1539 | |
| LOW | openhands/app_server/config.py | 242 | |
| LOW | openhands/app_server/version.py | 7 | |
| LOW | openhands/app_server/settings/settings_router.py | 96 | |
| LOW | openhands/app_server/settings/settings_models.py | 184 | |
| LOW | openhands/app_server/event_callback/webhook_router.py | 409 | |
| LOW | openhands/app_server/secrets/secrets_models.py | 110 | |
| LOW | openhands/app_server/secrets/secrets_router.py | 96 | |
| LOW | openhands/app_server/file_store/s3.py | 136 | |
| LOW | openhands/app_server/utils/llm.py | 164 | |
| LOW | openhands/app_server/utils/environment.py | 46 | |
| LOW | openhands/app_server/user/auth_user_context.py | 58 | |
| LOW | openhands/app_server/status/system_stats.py | 34 | |
| LOW | openhands/app_server/integrations/provider.py | 496 | |
| LOW | openhands/app_server/integrations/service_types.py | 46 | |
| LOW | openhands/app_server/integrations/service_types.py | 90 | |
| LOW | …nds/app_server/integrations/gitlab/service/features.py | 15 | |
| LOW | …er/integrations/bitbucket_data_center/service/repos.py | 16 | |
| LOW | …integrations/bitbucket_data_center/service/resolver.py | 35 | |
| LOW | …app_server/integrations/github/service/branches_prs.py | 17 | |
| LOW | …nds/app_server/integrations/github/service/features.py | 19 | |
| LOW | …nhands/app_server/integrations/github/service/repos.py | 210 | |
| LOW | …nds/app_server/integrations/github/service/resolver.py | 73 | |
| LOW | …nds/app_server/integrations/bitbucket/service/repos.py | 110 | |
| LOW | …nds/app_server/integrations/bitbucket/service/repos.py | 192 | |
| LOW | …p_server/integrations/azure_devops/service/branches.py | 142 | |
| 24 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | config.template.toml | 1 | ###################### OpenHands Configuration Example ###################### |
| LOW | config.template.toml | 21 | # Debugging enabled |
| LOW | config.template.toml | 41 | #file_store_path = "/tmp/file_store" |
| LOW | config.template.toml | 61 | # Path to mount the workspace |
| LOW | config.template.toml | 81 | |
| LOW | config.template.toml | 141 | [agent.CustomAgent] |
| LOW | config.template.toml | 161 | |
| LOW | config.template.toml | 181 | #platform = "" |
| LOW | config.template.toml | 201 | # Enable GPU support in the runtime |
| LOW | config.template.toml | 221 | # volumes = "/my/host/dir:/workspace:rw,/path2:/workspace/path2:ro" |
| LOW | config.template.toml | 241 | ############################################################################## |
| LOW | config.template.toml | 261 | |
| LOW | config.template.toml | 281 | #keep_first = 1 |
| LOW | config.template.toml | 301 | ########################### Kubernetes ####################################### |
| LOW | config.template.toml | 321 | #resource_memory_request = "1Gi" |
| LOW | config.template.toml | 341 | # Run the runtime sandbox container in privileged mode for use with docker-in-docker |
| LOW | config.template.toml | 361 | # "https://api.example.com/mcp/shttp", |
| LOW | config.template.toml | 381 | # env = {DEBUG = "true"} |
| LOW | frontend/playwright.config.ts | 61 | // name: 'Mobile Safari', |
| LOW | …ontend/src/contexts/conversation-websocket-context.tsx | 461 | } |
| LOW | …pi/conversation-service/v1-conversation-service.api.ts | 481 | // The agent-server provides a full ``conversationUrl`` with a |
| LOW | frontend/src/routes/settings.tsx | 81 | // so bounce them to ``/settings/agent``. Driven by the nav-item |
| LOW | enterprise/alembic.ini | 1 | # A generic, single database configuration. |
| LOW | enterprise/alembic.ini | 21 | |
| LOW | enterprise/tests/unit/__init__.py | 1 | # Do not delete this! There are dependencies with top level packages named `tests` that collide with ours, |
| LOW | enterprise/tests/unit/test_user_store.py | 1501 | |
| LOW | enterprise/storage/saas_settings_store.py | 201 | org_conversation.model_dump(mode='json'), |
| LOW | …grations/bitbucket_data_center/bitbucket_dc_manager.py | 221 | f'access to {project_key}/{repo_slug}; ignoring.' |
| LOW | tests/unit/app_server/test_profiles_api.py | 761 | # Bypass the invariant validator to persist a corrupt state. |
| LOW | openhands/app_server/constants.py | 21 | # Override with: OH_MAX_API_SECRET_NAME_LENGTH |
| LOW | openhands/app_server/constants.py | 61 | ) |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 1 | # A generic, single database configuration. |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 21 | |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 41 | |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 61 | # behavior of splitting on spaces and/or commas. |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 81 | # are written from script.py.mako |
| LOW | openhands/app_server/app_lifespan/alembic.ini | 101 | # black.options = -l 79 REVISION_SCRIPT_FILENAME |
| LOW | …app_server/app_conversation/app_conversation_router.py | 641 | # The agent-server's LLM registry is first-write-wins by ``usage_id``: |
| LOW | …p_conversation/live_status_app_conversation_service.py | 341 | |
| LOW | openhands-ui/vitest.shims.d.ts | 1 | /// <reference types="@vitest/browser/providers/playwright" /> |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/unit/app_server/test_profiles_api.py | 385 | assert fetched['config']['api_key'] is None # GET returns null, not mask |
| HIGH | tests/unit/app_server/test_agent_server_env_override.py | 158 | 'OH_AGENT_SERVER_ENV': '{"NUMBER": 123, "BOOLEAN": true, "NULL": null}', |
| HIGH | …rver/app_conversation/app_conversation_service_base.py | 342 | 'git init && git config --global ' |
| HIGH | …rver/app_conversation/app_conversation_service_base.py | 471 | "$secret_url" 2>/dev/null)" || exit 0 |
| HIGH | …rver/app_conversation/app_conversation_service_base.py | 532 | command = 'mkdir -p .git/hooks && chmod +x .openhands/pre-commit.sh' |
| HIGH | …p_conversation/live_status_app_conversation_service.py | 1857 | # Repository is being removed (set to null) |
| HIGH | scripts/issue_duplicate_check_openhands.py | 206 | ' "canonical_issue_number": 123 or null,', |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …terprise/tests/unit/test_billing_stripe_integration.py | 173 | # For testing, just return True directly |
| LOW | enterprise/tests/unit/test_email_service.py | 151 | # Should not raise, just return early |
| LOW | enterprise/tests/unit/test_lite_llm_manager.py | 838 | # Should not raise an exception, just return early |
| LOW | …unit/test_sharing/test_sharing_shared_event_service.py | 71 | # For testing purposes, we'll just use a mock that the EventPage can accept |
| LOW | …sts/unit/test_sharing/test_aws_shared_event_service.py | 72 | # For testing purposes, we'll just use a mock that the EventPage can accept |
| MEDIUM | …/unit/server/routes/test_jira_dc_integration_routes.py | 497 | # Additional comprehensive tests for better coverage |
| MEDIUM | …sts/unit/server/routes/test_jira_integration_routes.py | 289 | # Additional comprehensive tests for better coverage |
| LOW | enterprise/server/utils/url_utils.py | 23 | # for now just use the full hostname except for staging stacks. |
| LOW | enterprise/server/services/org_app_settings_service.py | 116 | # No fields to update, just return current settings |
| LOW | enterprise/server/services/user_app_settings_service.py | 93 | # No fields to update, just return current settings |
| LOW | enterprise/integrations/github/data_collector.py | 440 | # In this case, we will simply return when the exception occurs |
| MEDIUM | …/app_server/test_webhook_router_parent_conversation.py | 296 | # Create existing conversation with comprehensive metadata |
| MEDIUM | …nds/app_server/integrations/bitbucket/service/repos.py | 28 | # Extract workspace and repo from URL using robust URL parsing |
| LOW | …nds/app_server/integrations/bitbucket/service/repos.py | 182 | # If we can't extract the page, just use the next URL as is |
| MEDIUM | openhands/app_server/services/injector.py | 13 | """Object designed to facilitate dependency injection""" |
| MEDIUM | .github/scripts/update_pr_description.sh | 24 | # For existing PR descriptions, use a more robust approach |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | config.template.toml | 355 | # {url = "https://api.example.com/mcp/sse", api_key = "your-api-key"} |
| HIGH | config.template.toml | 366 | # api_key = "your-api-key", |
| HIGH | openhands/app_server/sandbox/sandbox_spec_service.py | 103 | export LMNR_PROJECT_API_KEY=your-api-key |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …onversation/sql_app_conversation_start_task_service.py | 207 | # Return tasks in the same order as requested, with None for missing ones |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | frontend/public/mockServiceWorker.js | 124 | async function handleRequest(event, requestId, requestInterceptedAt) { |