Label Studio is a multi-type data labeling and annotation tool with standardized output format
This report summarizes scanner evidence for HumanSignal/label-studio, a TypeScript project with 28,437 GitHub stars. SynthScan examined 733,842 lines of code across 4041 source files, recording 2861 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 6.1 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2156 finding(s).
Are imports declared and package/API names verified? 158 finding(s).
Are wrappers, guards, and repeated structures necessary? 2291 finding(s).
Which changes need focused human review? 2861 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2861 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/conftest.py | 15 | def clear_current_context_after_test(): | CODE |
| LOW | label_studio/server.py | 58 | def _apply_database_migrations(): | CODE |
| LOW | label_studio/organizations/models.py | 18 | def _workforce_closure_blocked(user): | CODE |
| LOW | label_studio/organizations/models.py | 201 | def projects_sorted_by_created_at(self): | CODE |
| LOW | label_studio/organizations/models.py | 212 | def per_project_invited_users(self): | CODE |
| LOW | label_studio/organizations/serializers.py | 61 | def get_contributed_to_projects(self, user) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/serializers.py | 86 | def get_contributed_to_projects(self, member) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/serializers.py | 103 | def get_contributed_projects_count(self, member) -> int: | CODE |
| LOW | label_studio/organizations/serializers.py | 121 | def get_contributed_to_projects(self, member) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/api.py | 140 | def _get_created_projects_map(self): | STRING |
| LOW | label_studio/organizations/api.py | 158 | def _get_contributed_to_projects_map(self): | STRING |
| LOW | label_studio/organizations/tests/factories.py | 19 | def created_by_active_organization(self, create, extracted, **kwargs): | CODE |
| LOW | label_studio/organizations/tests/test_models.py | 13 | def test_soft_delete_preserves_avatar_and_other_org_task_locks(self): | CODE |
| LOW | label_studio/organizations/tests/test_models.py | 39 | def test_soft_delete_clears_avatar_and_org_task_locks_for_last_membership(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 22 | def test_list_organization_members(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 47 | def test_list_with_contributed_to_projects(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 138 | def test_member_cannot_take_ownership(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 151 | def test_member_cannot_allow_unsafe_instruction_tags(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 164 | def test_title_and_contact_info_stay_writable(self): | CODE |
| LOW | …bel_studio/session_policy/tests/test_session_policy.py | 9 | def test_session_timeout_policy(): | CODE |
| LOW | label_studio/tasks/functions.py | 27 | def bulk_create_annotations_with_side_effects( | CODE |
| LOW | label_studio/tasks/functions.py | 135 | def redis_job_for_calculation(org_id, from_scratch, migration_name='0018_manual_migrate_counters'): | CODE |
| LOW | label_studio/tasks/functions.py | 223 | def _fill_annotations_project(project_id): | CODE |
| LOW | label_studio/tasks/functions.py | 237 | def _fill_predictions_project(migration_name='0043_auto_20230825'): | CODE |
| LOW | label_studio/tasks/functions.py | 324 | def bulk_update_is_labeled_by_overlap(tasks_ids, project): | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 17 | def post_process_bulk_update_stats(cls, tasks) -> None: | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 27 | def after_bulk_delete_actions(tasks_ids, project): | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 36 | def get_lock_extra_exclude_query(self): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 549 | def increase_project_summary_counters(self): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 555 | def decrease_project_summary_counters(self): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 560 | def ensure_unique_groundtruth(self, annotation_id): | CODE |
| LOW | label_studio/tasks/models.py | 225 | def get_predictions_for_prelabeling(self): | CODE |
| LOW | label_studio/tasks/models.py | 346 | def overlap_with_agreement_threshold(self, num, num_locks): | CODE |
| LOW | label_studio/tasks/models.py | 578 | def delete_tasks_without_signals(queryset): | CODE |
| LOW | label_studio/tasks/models.py | 601 | def delete_tasks_without_signals_from_task_ids(task_ids): | CODE |
| LOW | label_studio/tasks/models.py | 814 | def increase_project_summary_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 820 | def decrease_project_summary_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 871 | def _update_task_state_after_deletion(self, task, project): | CODE |
| LOW | label_studio/tasks/models.py | 877 | def on_delete_update_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 1107 | def prepare_prediction_result(cls, result, project): | CODE |
| LOW | label_studio/tasks/models.py | 1378 | def update_all_task_states_after_deleting_task(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1402 | def _task_data_is_not_updated(update_fields): | CODE |
| LOW | label_studio/tasks/models.py | 1414 | def delete_project_summary_data_columns_before_updating_task(sender, instance, update_fields, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1428 | def update_project_summary_data_columns(sender, instance, created, update_fields, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1437 | def delete_project_summary_annotations_before_updating_annotation(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1465 | def update_project_summary_annotations_and_is_labeled(sender, instance, created, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1481 | def update_task_counters_after_annotation_delete(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1520 | def remove_predictions_from_project(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1528 | def save_predictions_to_project(sender, instance, created, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1590 | def deprecated_bulk_update_stats_project_tasks(tasks, project=None): | CODE |
| LOW | label_studio/tasks/models.py | 1640 | def bulk_update_stats_project_tasks(tasks, project=None): | CODE |
| LOW | label_studio/tasks/serializers.py | 48 | def sanitize_prediction_import_payload(prediction): | CODE |
| LOW | label_studio/tasks/serializers.py | 231 | def _resolve_project_for_validation(self, data): | CODE |
| LOW | label_studio/tasks/serializers.py | 590 | def _insert_valid_completed_by(annotations, members_email_to_id, members_ids, default_user, ff_user=None): | CODE |
| LOW | label_studio/tasks/serializers.py | 649 | def _insert_valid_user_reviews(dicts, members_email_to_id, default_user): | CODE |
| LOW | label_studio/tasks/serializers.py | 673 | def _insert_valid_user_drafts(dicts, members_email_to_id, default_user): | CODE |
| LOW | label_studio/tasks/serializers.py | 1025 | def _backfill_task_fsm_states_skipping_inference(self, db_tasks: list, task_annotations: list): | CODE |
| LOW | label_studio/tasks/serializers.py | 1071 | def post_process_custom_callback(project_id, user): | CODE |
| LOW | label_studio/tasks/api.py | 379 | def get_retrieve_serializer_context(self, request): | STRING |
| LOW | label_studio/tasks/api.py | 405 | def maybe_evaluate_predictions(self, project, request): | STRING |
| 1676 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/server.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/manage.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/apps.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/forms.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/admin.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/middleware.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/views.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/validation.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/mixins.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/label_config.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/version.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/context_processors.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/redis.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/storage.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/permissions.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/job_deduplication.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/argparser.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/bulk_update_utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/middleware.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/views.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/wsgi.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/templatetags/filters.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/label_studio.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/base.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/io.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/common.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/exceptions.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/contextlog.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/base_models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/filesystem.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/all_api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | label_studio/core/static/js/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL⚡ | …tudio/io_storages/tests/test_localfiles_serializers.py | 6 | from django.core.exceptions import ValidationError as DjangoValidationError # type: ignore[import] | CODE |
| CRITICAL | …studio/io_storages/tests/test_localfiles_validation.py | 4 | from django.core.exceptions import ValidationError # type: ignore[import] | CODE |
| CRITICAL | label_studio/io_storages/localfiles/models.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | label_studio/io_storages/localfiles/serializers.py | 6 | from django.core.exceptions import ValidationError as DjangoValidationError # type: ignore[import] | CODE |
| CRITICAL | label_studio/io_storages/azure_blob/models.py | 10 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | label_studio/users/validators.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | label_studio/users/forms.py | 9 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | label_studio/webhooks/models.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ibs/ui/src/lib/multi-tree-select/tree-context.test.tsx | 135 | const label1 = result.current.providerProps.dataRef.current.find((w) => w.id === "1"); | CODE |
| CRITICAL | …editor/tests/integration/e2e/video/vector_points.cy.ts | 120 | const video = win.Htx.annotationStore.selected.names.get("video"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 373 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 386 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 399 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 416 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 434 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 457 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | web/libs/editor/src/tags/object/Video/Video.js | 160 | return self.annotation.regionStore.selection.list.filter((reg) => reg.type === "timelineregion"); | CODE |
| CRITICAL | …/src/components/ImageView/__tests__/ImageView.test.jsx | 763 | const onMouseEnter = item.stageRef.on.mock.calls.find((c) => c[0] === "mouseenter")?.[1]; | CODE |
| CRITICAL | …/src/components/ImageView/__tests__/ImageView.test.jsx | 764 | const onMouseMove = item.stageRef.on.mock.calls.find((c) => c[0] === "mousemove")?.[1]; | CODE |
| CRITICAL | web/libs/editor/src/components/TextHighlight/Node.jsx | 27 | store.annotationStore.selected.regionStore.regions.forEach((i) => { | CODE |
| CRITICAL | web/libs/frontend-test/src/helpers/LSF/LabelStudio.ts | 269 | const isReady = win.Htx.annotationStore.selected.objects.every((object) => object.isReady); | CODE |
| CRITICAL⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 6 | (function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e= | CODE |
| CRITICAL⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 9 | }},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e | CODE |
| CRITICAL | docs/themes/v2/source/js/playground/codemirror.js | 12084 | return this.cm.display.wrapper.ownerDocument.getSelection(); | CODE |
| CRITICAL | docs/themes/v2/source/js/playground/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 329 | except Exception as e: | CODE |
| LOW | label_studio/tasks/models.py | 493 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 515 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1224 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1358 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1389 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/serializers.py | 820 | except Exception as e: | CODE |
| LOW | label_studio/tasks/serializers.py | 849 | except Exception as e: | CODE |
| LOW | label_studio/core/label_config.py | 233 | except Exception as exc: | CODE |
| LOW | label_studio/core/version.py | 119 | except Exception as e: | CODE |
| LOW | label_studio/core/current_request.py | 102 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 76 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 181 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 230 | except Exception: | CODE |
| LOW⚡ | label_studio/core/redis.py | 324 | except Exception: | CODE |
| LOW⚡ | label_studio/core/redis.py | 329 | except Exception: | CODE |
| LOW⚡ | label_studio/core/redis.py | 337 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 359 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 433 | except Exception as e: | CODE |
| MEDIUM | label_studio/core/redis.py | 48 | def _truncate_args_for_logging(args, kwargs, max_length=30): | CODE |
| LOW | label_studio/core/job_deduplication.py | 131 | except Exception: | CODE |
| LOW | label_studio/core/job_deduplication.py | 181 | except Exception: | CODE |
| LOW | label_studio/core/job_deduplication.py | 195 | except Exception: | CODE |
| LOW⚡ | label_studio/core/job_deduplication.py | 249 | except Exception: | CODE |
| LOW⚡ | label_studio/core/job_deduplication.py | 258 | except Exception: | CODE |
| LOW⚡ | label_studio/core/job_deduplication.py | 267 | except Exception: | CODE |
| LOW | label_studio/core/job_deduplication.py | 325 | except Exception: | CODE |
| LOW | label_studio/core/migration_helpers.py | 154 | except Exception as rq_err: | CODE |
| LOW | label_studio/core/migration_helpers.py | 246 | except Exception as e: | CODE |
| LOW | label_studio/core/migration_helpers.py | 261 | except Exception as e: | CODE |
| LOW | label_studio/core/views.py | 164 | except Exception: | CODE |
| MEDIUM | label_studio/core/tests/test_redis.py | 339 | def runner(): | CODE |
| LOW | label_studio/core/tests/test_redis.py | 342 | except Exception as exc: # pragma: no cover - used for regression verification | CODE |
| LOW | label_studio/core/utils/db.py | 208 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/params.py | 32 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/params.py | 52 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/secret_key.py | 53 | except Exception as e: | CODE |
| LOW⚡ | label_studio/core/utils/common.py | 387 | except Exception: | CODE |
| LOW | label_studio/core/utils/common.py | 491 | except Exception: | CODE |
| LOW | label_studio/core/utils/common.py | 499 | except Exception: | CODE |
| MEDIUM | label_studio/core/utils/common.py | 233 | def string_is_url(url): | CODE |
| LOW | label_studio/core/utils/manifest_assets.py | 16 | except Exception: | CODE |
| LOW | label_studio/core/utils/contextlog.py | 28 | except Exception as exc: | CODE |
| LOW | label_studio/core/utils/contextlog.py | 213 | except Exception as exc: | CODE |
| MEDIUM | label_studio/core/utils/contextlog.py | 23 | def _load_log_payloads(): | CODE |
| MEDIUM | label_studio/core/utils/contextlog.py | 72 | def _get_response_content(self, response): | CODE |
| LOW | label_studio/io_storages/functions.py | 62 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 83 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 175 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 221 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 227 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 381 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/base_models.py | 239 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 432 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 480 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 907 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 1059 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 1119 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 1201 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/api.py | 106 | except Exception as exc: | CODE |
| 130 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | label_studio/organizations/serializers.py | 29 | # ========================================= | COMMENT |
| MEDIUM | label_studio/organizations/serializers.py | 32 | # ========================================= | COMMENT |
| MEDIUM | label_studio/organizations/serializers.py | 152 | # ========================================= | COMMENT |
| MEDIUM⚡ | label_studio/tasks/tests/test_result_utils.py | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tasks/tests/test_result_utils.py | 94 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/core/job_deduplication.py | 32 | # ---------------------- | COMMENT |
| MEDIUM | label_studio/core/job_deduplication.py | 56 | # ------------- | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 193 | # ===================== | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 195 | # ===================== | COMMENT |
| MEDIUM | label_studio/projects/models.py | 977 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/projects/models.py | 979 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 215 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 217 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 361 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_job_deduplication.py | 363 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_job_deduplication.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_job_deduplication.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_job_deduplication.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_job_deduplication.py | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_import_completed_by.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_import_completed_by.py | 125 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_import_completed_by.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_import_completed_by.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_import_completed_by.py | 307 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | label_studio/tests/test_import_completed_by.py | 309 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …el_studio/tests/test_storage_create_list_edge_cases.py | 57 | # ── Happy path ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …el_studio/tests/test_storage_create_list_edge_cases.py | 87 | # ── Production scenario (TRIAG-2148 exact reproduction) ───────────── | COMMENT |
| MEDIUM | …el_studio/tests/test_storage_create_list_edge_cases.py | 268 | # ── Defensive edge cases (meta corruption) ───────────────────────── | COMMENT |
| MEDIUM⚡ | label_studio/fsm/models.py | 17 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/models.py | 19 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/utils.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/utils.py | 29 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/utils.py | 208 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/utils.py | 210 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/state_models.py | 222 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/state_models.py | 224 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/helpers.py | 27 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/helpers.py | 29 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 66 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 68 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 266 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 268 | # ============================================================================ | COMMENT |
| MEDIUM | web/libs/core/src/lib/topbar/AnnotationsListFilter.tsx | 100 | // ─── Filter tooltip helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/libs/core/src/lib/topbar/AnnotationsListFilter.tsx | 201 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 5 | // ── Adapters ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 266 | // ── Option renderer ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 306 | // ── Unified component ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/editor/src/ml-interactive/primitives/MaskConverter.ts | 208 | // ─── Contour tracing (marching squares) ───────────────────────────────────── | COMMENT |
| MEDIUM | …/editor/src/ml-interactive/primitives/MaskConverter.ts | 324 | // ─── Douglas-Peucker simplification ───────────────────────────────────────── | COMMENT |
| MEDIUM | …/editor/src/ml-interactive/primitives/MaskConverter.ts | 360 | // ─── Zhang-Suen thinning (skeleton extraction) ───────────────────────────── | COMMENT |
| MEDIUM | …/editor/src/ml-interactive/primitives/MaskConverter.ts | 426 | // ─── Skeleton path tracing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …itor/src/ml-interactive/primitives/useInputHandlers.ts | 34 | // ─── Click capture on the stage / overlay ────────────────────────────── | COMMENT |
| MEDIUM | …itor/src/ml-interactive/primitives/useInputHandlers.ts | 231 | // ─── Cursor baseline for video ───────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …tings/PredictionsSettings/ImportPredictionsExample.jsx | 226 | api_key="YOUR_API_KEY", | CODE |
| HIGH | …tings/PredictionsSettings/ImportPredictionsExample.jsx | 251 | project's {usesCustomInterface ? "interface schema" : "labeling config"} — replace <code>YOUR_API_KEY</code> | CODE |
| HIGH | docs/source/guide/api.md | 68 | LABEL_STUDIO_API_KEY = 'YOUR_API_KEY' | CODE |
| HIGH | docs/source/guide/sdk.md | 42 | LABEL_STUDIO_API_KEY = 'YOUR_API_KEY' | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 319 | - LABEL_STUDIO_API_KEY=your_api_key | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 953 | python cli.py --ls-url http://localhost:8080 --ls-api-key your_api_key --project 1 --tasks tasks.json | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 959 | python cli.py --ls-url http://localhost:8080 --ls-api-key YOUR_API_KEY --project 1 --tasks 1,2,3 | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 988 | LOG_LEVEL=DEBUG python cli.py --ls-url http://localhost:8080 --ls-api-key YOUR_API_KEY --project 2 --tasks 1,2,3 | CODE |
| HIGH | docs/source/guide/ml_tutorials/grounding_sam.md | 50 | - `LABEL_STUDIO_ACCESS_TOKEN=your-api-key` | CODE |
| HIGH | docs/source/guide/ml_tutorials/grounding_dino.md | 47 | - `LABEL_STUDIO_ACCESS_TOKEN=your-api-key` | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 93 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 105 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 105 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 141 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 156 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 156 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/react_claims.md | 259 | apiKey: 'YOUR-API-KEY', | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 208 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 230 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 244 | ls = Client(url='http://localhost:8080', api_key='YOUR_API_KEY') | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 273 | - Replace `YOUR_API_KEY` with your actual API key. | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 283 | label-studio export --host http://localhost:8080 --api-key YOUR_API_KEY PROJECT_ID JSON --interpolate-key-frames | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 287 | - Replace `YOUR_API_KEY` and `PROJECT_ID` with your API key and project ID, respectively. | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 301 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 72 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 86 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 86 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …urce/templates/generative-pairwise-human-preference.md | 64 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …urce/templates/generative-pairwise-human-preference.md | 64 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …s/how_to_connect_Hugging_Face_with_Label_Studio_SDK.md | 122 | export LABEL_STUDIO_API_KEY="your-api-key-here" | CODE |
| HIGH | …ulti_turn_chat_evals_with_chainlit_and_label_studio.md | 89 | export LABEL_STUDIO_API_KEY="your-api-key-here" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 431 | # Step 1: Create project | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 438 | # Step 2: Create 2 tasks | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 448 | # Step 3: Submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 458 | # Step 4: Submit annotation on task2 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 468 | # Step 5: Delete annotation from task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 473 | # Step 6: Re-submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 526 | # Step 1: Create task directly without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 533 | # Step 2: Create annotation directly | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 543 | # Step 3: Delete annotation via SDK (this triggers FSM logic) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 546 | # Step 4: Verify task state was initialized and updated | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 571 | # Step 1: Create task without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 581 | # Step 2: Submit annotation via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 588 | # Step 3: Verify states initialized | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 630 | # Step 2: Submit annotation on first task only via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 637 | # Step 3: Verify both tasks now have states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 650 | # Step 4: Verify project state is correct (IN_PROGRESS - some tasks completed) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 681 | # Step 1: Create 3 tasks without FSM states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 689 | # Step 2: Submit annotations on all tasks via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 699 | # Step 3: Verify all tasks have correct states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 704 | # Step 4: Verify project is COMPLETED (all tasks completed) | COMMENT |
| LOW | label_studio/tests/test_fsm_lso_workflows.py | 619 | # Step 1: Create two tasks without FSM states | COMMENT |
| LOW | label_studio/tests/data_manager/test_undefined.py | 60 | # Step 1: Import task 1: {"$undefined$": "photo1.jpg"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 83 | # Step 4: Set labeling config <View> <Image value="$image" name="img"/> </View> | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 93 | # Step 7: Add task 2: {"$undefined$": "photo2.jpg", "extra": "123"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 111 | # Step 12: Update task 1 with {"extra": "456"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 119 | # Step 13: Check project.summary.common_data_columns, there should be ["$undefined$", "extra"] | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 127 | # Step 14: Filter by "image" with "photo" should return task 1 and task 2 | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 717 | # Step 4: Test that the PATCHed view filters tasks correctly | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 726 | # Step 5: PATCH again to modify the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 601 | # Step 1: Create a view with a non-nested filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 660 | # Step 2: PATCH the view to add a child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 691 | # Step 3: Verify the PATCHed view has the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 757 | # Step 6: Verify the child filter was updated | STRING |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 210 | # Step 1: Create task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 232 | # Step 2: Assign and start task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 258 | # Step 3: Complete task | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 127 | # Step 1: Create transition from API data | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 130 | # Step 2: Execute transition | COMMENT |
| LOW | label_studio/fsm/tests/test_api_example.py | 145 | # Step 3: Format API response | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 637 | // Step 1: Scale | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 641 | // Step 2: Rotate | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 645 | // Step 3: Translate and clamp to image bounds | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 881 | #### Step 1: Create a service account in your target Google Cloud project | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 893 | #### Step 2: Grant the target service account access to your bucket | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 932 | #### Step 3: Allow impersonation from the Label Studio base service account | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 961 | #### Step 4: Configure CORS on the bucket (required for pre-signed URLs) | COMMENT |
| LOW | docs/source/guide/ts+video.md | 21 | ## Step 1: Media hosting | COMMENT |
| LOW | docs/source/guide/ts+video.md | 34 | ## Step 2: Labeling config with example task data | COMMENT |
| LOW | docs/source/guide/ts+video.md | 58 | ## Step 3: Prepare and import tasks | COMMENT |
| LOW | docs/source/guide/ts+video.md | 73 | ## Step 4: Explore imported task | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 438 | #### Step 1: Adjust Git Configuration | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 448 | #### Step 2: Clone the Repository Again | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 456 | #### Step 3: Build and Run the Docker Containers | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 142 | ### Step 1: Create an AWS IAM role for logging | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 233 | ### Step 2: Configure permissions between Label Studio Enterprise and AWS Lambda | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 303 | ### Step 1: Enable the required GCP APIs | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 326 | ### Step 2: Create a runtime service account for Cloud Functions | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 346 | ### Step 3: Grant permissions to the Label Studio Enterprise identity | COMMENT |
| LOW | docs/source/guide/agreement_metrics.md | 218 | #### Step 1: Check that labels match | COMMENT |
| LOW | docs/source/guide/agreement_metrics.md | 224 | #### Step 2: Calculate IoU (Intersection over Union) | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | label_studio/tasks/models.py | 645 | # Create a dynamic class that mixes FSM support into the queryset | COMMENT |
| MEDIUM | label_studio/tasks/tests/test_lazy_load_annotations.py | 467 | # Create a normal annotation | COMMENT |
| MEDIUM | label_studio/tasks/tests/test_lazy_load_annotations.py | 480 | # Create a cancelled annotation | COMMENT |
| MEDIUM | label_studio/core/version.py | 39 | 'info = %s\n' % info_str + '\n# This file is automatically generated by version.py' | CODE |
| MEDIUM | label_studio/core/feature_flags/tests/test_base.py | 8 | # Create a minimal organization-like object | COMMENT |
| MEDIUM | label_studio/core/management/commands/locked_migrate.py | 32 | # Create a separate database connection to hold the lock | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 160 | # Create a database cursor that yields primary keys without loading all into memory | COMMENT |
| MEDIUM | label_studio/core/utils/iterators.py | 45 | # Create a new queryset based on the original, preserving all optimizations: | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 61 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 77 | # Create a mock response for get_object | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 103 | # Create a mock response for get_object with range header | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 140 | # Create a mock response for get_object with range header | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 197 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 549 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 595 | # Create a proper AuthorizedSession patcher that returns our mock session | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_base_models.py | 170 | # Create the annotation before any storage exists so creation does not trigger an export. | COMMENT |
| MEDIUM⚡ | label_studio/io_storages/tests/test_proxy_api.py | 308 | # Create a mock stream with iter_chunks method | COMMENT |
| MEDIUM⚡ | label_studio/io_storages/tests/test_proxy_api.py | 591 | # Create the necessary objects for testing without database | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 331 | # Create a mock stream with iter_chunks method | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 354 | # Create a mock stream with iter_chunks method that raises an exception | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 648 | # Create the necessary objects for testing without database | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_fsm_lso_workflows.py | 673 | # Create a new project with FSM | COMMENT |
| MEDIUM | label_studio/tests/conftest.py | 838 | # This function is called by pytest after the collection of tests has been completed to modify their order | COMMENT |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 77 | - # Create a project with a specific labeling configuration | CODE |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 180 | - # Create a project with a specific labeling configuration | CODE |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 1380 | - # Create a project with Table labeling configuration | CODE |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 46 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 1059 | # Create a project with Taxonomy tag and labels covering both paths | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 64 | # Create a task | STRING |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 359 | # Create a project with specific label config for testing | COMMENT |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 1023 | # Create a gap: two views remain but max order is 5 (count would be 2). | COMMENT |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 413 | # Create a view with nested filters | STRING |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 547 | # Create a project with specific label config for testing | STRING |
| MEDIUM | …studio/tests/data_manager/actions/test_cache_labels.py | 30 | # Create a few tasks | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 21 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 51 | # Create a task | STRING |
| MEDIUM | label_studio/fsm/models.py | 238 | # Create a temporary transition instance with full context | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/test_lso_integration.py | 147 | # Create a project but delete its state records | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_lso_integration.py | 195 | # Create a mock entity that doesn't have a state model | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_fsm_integration.py | 369 | # Create a state transition | COMMENT |
| MEDIUM | label_studio/data_manager/prepare_params.py | 300 | # Define the schemas for filters and selectedItems | COMMENT |
| MEDIUM | label_studio/data_manager/prepare_params.py | 452 | # Define the main schema for the data payload | COMMENT |
| MEDIUM | label_studio/data_manager/tests/test_managers.py | 165 | # Create a simple mock queryset | COMMENT |
| MEDIUM | label_studio/data_export/api.py | 188 | # Create a prefetch for annotations with FSM state | STRING |
| MEDIUM | label_studio/users/tests/test_hotkeys_api.py | 21 | # Create a test user | COMMENT |
| MEDIUM | label_studio/jwt_auth/views.py | 263 | # Create a new token for the user | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/tasks/api.py | 1159 | except AnnotationDraft.DoesNotExist: | CODE |
| HIGH | label_studio/core/urls.py | 119 | except ImportError: | CODE |
| HIGH | label_studio/core/middleware.py | 193 | except: # noqa: E722 | CODE |
| HIGH | label_studio/core/utils/db.py | 244 | except RuntimeError: | CODE |
| HIGH | label_studio/core/utils/io.py | 89 | except OSError: | CODE |
| HIGH | label_studio/core/utils/common.py | 475 | except: # noqa: E722 | CODE |
| HIGH | label_studio/core/utils/common.py | 483 | except: # noqa: E722 | CODE |
| HIGH | label_studio/core/utils/common.py | 491 | except Exception: | CODE |
| HIGH | label_studio/core/utils/common.py | 499 | except Exception: | CODE |
| HIGH | label_studio/core/utils/manifest_assets.py | 16 | except Exception: | CODE |
| HIGH | label_studio/core/utils/contextlog.py | 329 | except: # noqa: E722 | CODE |
| HIGH | label_studio/core/utils/contextlog.py | 335 | except: # noqa: E722 | CODE |
| HIGH | label_studio/io_storages/utils.py | 263 | except json.decoder.JSONDecodeError: | CODE |
| HIGH | label_studio/io_storages/azure_blob/utils.py | 57 | except Exception: | CODE |
| HIGH | label_studio/io_storages/azure_blob/utils.py | 77 | except Exception: | CODE |
| HIGH | label_studio/projects/serializers.py | 280 | except ValueError: | CODE |
| HIGH | label_studio/projects/api.py | 433 | except KeyError: | CODE |
| HIGH | label_studio/tests/conftest.py | 432 | except ImportError: | CODE |
| HIGH | label_studio/tests/test_batch_update_deadlock.py | 45 | except OperationalError: | CODE |
| HIGH | label_studio/fsm/tests/test_performance_concurrency.py | 479 | except Exception: | CODE |
| HIGH | label_studio/fsm/tests/test_performance_concurrency.py | 488 | except Exception: | CODE |
| HIGH | label_studio/data_manager/actions/experimental.py | 31 | except KeyError: | CODE |
| HIGH | …dio/data_manager/actions/predictions_to_annotations.py | 70 | except ValueError: | CODE |
| HIGH | label_studio/data_import/functions.py | 256 | except Exception: | CODE |
| HIGH | label_studio/data_import/models.py | 62 | except: # noqa: E722 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/models.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/api.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/middleware.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/functions.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 13 | def update_is_labeled(self, *args, **kwargs) -> None: | CODE |
| LOW | label_studio/tasks/models.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/serializers.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/apps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/api.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/validation.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | …tasks/management/commands/recalculate_task_counters.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | …el_studio/tasks/management/commands/calculate_stats.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/mixins.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/label_config.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/models.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/redis.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/storage.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/permissions.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/job_deduplication.py | 71 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/middleware.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/migration_helpers.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/views.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/settings/base.py | 89 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/feature_flags/base.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …udio/core/management/commands/show_async_migrations.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/management/commands/locked_migrate.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/db.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/secret_key.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/common.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/contextlog.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/functions.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/base_models.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/filesystem.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/api.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/utils.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/all_api.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/react_code_proxy.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/models.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/serializers.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/utils.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/redis/models.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/localfiles/models.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/localfiles/views.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/azure_blob/models.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/azure_blob/utils.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/gcs/models.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/gcs/utils.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/models.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/import_health.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/apps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/api.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/views.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/functions/next_task.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tests/test_config_validation.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tests/utils.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/ml_model_providers/models.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/functions.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/state_manager.py | 21 | logger = logging.getLogger(__name__) | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 276 | CODE | |
| LOW | label_studio/tasks/models.py | 225 | CODE | |
| LOW | label_studio/tasks/models.py | 1107 | CODE | |
| LOW | label_studio/tasks/serializers.py | 590 | CODE | |
| LOW | label_studio/tasks/serializers.py | 696 | CODE | |
| LOW | label_studio/tasks/serializers.py | 782 | CODE | |
| LOW | label_studio/tasks/serializers.py | 1219 | CODE | |
| LOW | label_studio/tasks/api.py | 576 | CODE | |
| LOW | label_studio/tasks/api.py | 754 | CODE | |
| LOW | label_studio/tasks/api.py | 595 | CODE | |
| LOW | label_studio/tasks/api.py | 786 | CODE | |
| LOW | label_studio/tasks/validation.py | 133 | CODE | |
| LOW | label_studio/core/label_config.py | 57 | CODE | |
| LOW | label_studio/core/label_config.py | 146 | CODE | |
| LOW | label_studio/core/label_config.py | 245 | CODE | |
| LOW | label_studio/core/label_config.py | 262 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 39 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 82 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 127 | CODE | |
| LOW | label_studio/core/redis.py | 264 | CODE | |
| LOW | label_studio/core/middleware.py | 278 | CODE | |
| LOW | …_studio/core/management/commands/check_schema_drift.py | 92 | CODE | |
| LOW | label_studio/core/utils/db.py | 40 | CODE | |
| LOW | label_studio/core/utils/io.py | 39 | CODE | |
| LOW | label_studio/core/utils/serializer_to_openapi_params.py | 85 | CODE | |
| LOW | label_studio/core/utils/serializer_to_openapi_params.py | 150 | CODE | |
| LOW | label_studio/core/utils/common.py | 637 | CODE | |
| LOW | label_studio/core/utils/contextlog.py | 208 | CODE | |
| LOW | label_studio/core/utils/filterset_to_openapi_params.py | 109 | CODE | |
| LOW | label_studio/core/utils/filterset_to_openapi_params.py | 174 | CODE | |
| LOW | label_studio/io_storages/proxy_api.py | 233 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 170 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 395 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 576 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 704 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 1018 | CODE | |
| LOW | label_studio/io_storages/utils.py | 200 | CODE | |
| LOW | label_studio/io_storages/azure_blob/models.py | 163 | CODE | |
| LOW | label_studio/io_storages/gcs/utils.py | 52 | CODE | |
| LOW | label_studio/projects/models.py | 498 | CODE | |
| LOW | label_studio/projects/models.py | 652 | CODE | |
| LOW | label_studio/projects/models.py | 884 | CODE | |
| LOW | label_studio/projects/models.py | 1118 | CODE | |
| LOW | label_studio/projects/models.py | 1204 | CODE | |
| LOW | label_studio/projects/models.py | 1610 | CODE | |
| LOW | label_studio/projects/models.py | 1765 | CODE | |
| LOW | label_studio/projects/models.py | 1864 | CODE | |
| LOW | label_studio/projects/serializers.py | 171 | CODE | |
| LOW | label_studio/projects/functions/stream_history.py | 10 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 56 | CODE | |
| LOW | label_studio/projects/functions/next_task.py | 423 | CODE | |
| LOW | label_studio/projects/functions/next_task.py | 453 | CODE | |
| LOW | label_studio/tests/test_endpoints.py | 294 | CODE | |
| LOW | label_studio/tests/utils.py | 87 | CODE | |
| LOW | label_studio/tests/utils.py | 168 | CODE | |
| LOW | label_studio/tests/utils.py | 211 | CODE | |
| LOW | label_studio/tests/test_tasks_upload.py | 15 | CODE | |
| LOW | …studio/tests/data_manager/actions/test_cache_labels.py | 24 | CODE | |
| LOW | label_studio/fsm/functions.py | 132 | CODE | |
| LOW | label_studio/fsm/state_manager.py | 215 | CODE | |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 431 | # Step 1: Create project | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 438 | # Step 2: Create 2 tasks | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 448 | # Step 3: Submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 458 | # Step 4: Submit annotation on task2 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 468 | # Step 5: Delete annotation from task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 473 | # Step 6: Re-submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 526 | # Step 1: Create task directly without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 533 | # Step 2: Create annotation directly | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 543 | # Step 3: Delete annotation via SDK (this triggers FSM logic) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 546 | # Step 4: Verify task state was initialized and updated | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 571 | # Step 1: Create task without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 581 | # Step 2: Submit annotation via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 588 | # Step 3: Verify states initialized | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 630 | # Step 2: Submit annotation on first task only via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 637 | # Step 3: Verify both tasks now have states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 650 | # Step 4: Verify project state is correct (IN_PROGRESS - some tasks completed) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 681 | # Step 1: Create 3 tasks without FSM states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 689 | # Step 2: Submit annotations on all tasks via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 699 | # Step 3: Verify all tasks have correct states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 704 | # Step 4: Verify project is COMPLETED (all tasks completed) | COMMENT |
| LOW | label_studio/tests/test_fsm_lso_workflows.py | 619 | # Step 1: Create two tasks without FSM states | COMMENT |
| LOW | label_studio/tests/data_manager/test_undefined.py | 60 | # Step 1: Import task 1: {"$undefined$": "photo1.jpg"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 83 | # Step 4: Set labeling config <View> <Image value="$image" name="img"/> </View> | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 93 | # Step 7: Add task 2: {"$undefined$": "photo2.jpg", "extra": "123"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 111 | # Step 12: Update task 1 with {"extra": "456"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 119 | # Step 13: Check project.summary.common_data_columns, there should be ["$undefined$", "extra"] | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 127 | # Step 14: Filter by "image" with "photo" should return task 1 and task 2 | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 717 | # Step 4: Test that the PATCHed view filters tasks correctly | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 726 | # Step 5: PATCH again to modify the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 601 | # Step 1: Create a view with a non-nested filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 660 | # Step 2: PATCH the view to add a child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 691 | # Step 3: Verify the PATCHed view has the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 757 | # Step 6: Verify the child filter was updated | STRING |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 210 | # Step 1: Create task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 232 | # Step 2: Assign and start task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 258 | # Step 3: Complete task | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 127 | # Step 1: Create transition from API data | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 130 | # Step 2: Execute transition | COMMENT |
| LOW | label_studio/fsm/tests/test_api_example.py | 145 | # Step 3: Format API response | COMMENT |
| LOW | web/libs/editor/src/regions/Result.js | 263 | // We need to check if there is any node up in the tree with visibility restrictions so we can determine | COMMENT |
| LOW | web/libs/editor/src/tags/object/Paragraphs/model.js | 382 | * so we need to check if we already reached the end of current region | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 637 | // Step 1: Scale | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 641 | // Step 2: Rotate | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 645 | // Step 3: Translate and clamp to image bounds | COMMENT |
| LOW | web/apps/playground/src/utils/query.ts | 19 | // We need to check if the content is XML-like, but not XML | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/io_storages/functions.py | 19 | Preload and prepare a storage instance from request data. This function handles the common logic for loading e | STRING |
| HIGH | label_studio/fsm/state_manager.py | 116 | Get current state with basic caching. Args: entity: The entity to get current state for | STRING |
| HIGH | label_studio/fsm/state_manager.py | 194 | Get current state object with full audit information. Args: entity: The entity to get curr | STRING |
| HIGH | label_studio/fsm/state_manager.py | 226 | Perform state transition with audit trail. Uses INSERT-only approach for maximum performance: | STRING |
| HIGH | label_studio/fsm/state_manager.py | 520 | Execute a registered transition by name. This is the main entry point for all state transitions using | STRING |
| HIGH | label_studio/fsm/transition_executor.py | 28 | Execute a registered transition using StateManager methods passed as parameters. This function is called by St | STRING |
| HIGH | label_studio/fsm/transitions.py | 194 | Validate whether this specific transition instance can be performed. This method validates both the tr | STRING |
| HIGH | label_studio/fsm/transitions.py | 230 | Execute the transition and return context data for the state record. This is the core method that impl | STRING |
| HIGH | label_studio/fsm/transitions.py | 282 | Prepare and validate the transition, returning the transition data. This method handles the preparatio | STRING |
| HIGH | label_studio/fsm/transitions.py | 418 | Validate whether this transition should execute. Extends parent validation with should_execute() check | STRING |
| HIGH | label_studio/fsm/utils.py | 317 | Get current state, or initialize it if it doesn't exist. This function handles "cold start" scenarios where pr | STRING |
| HIGH | label_studio/fsm/transition_utils.py | 108 | Create a transition instance from a dictionary of data. This handles Pydantic validation and provides clear er | STRING |
| HIGH | label_studio/fsm/state_inference.py | 11 | Infer what the FSM state should be based on entity's current data. This is used for "cold start" scenarios whe | STRING |
| HIGH | label_studio/users/views.py | 140 | Handle user account view and profile updates. This view displays the user's profile information and allows the | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/api.py | 717 | 'email': 'user@example.com', | CODE |
| LOW | …io/tasks/tests/test_deleted_user_task_serialization.py | 62 | assert 'John Doe' in active_data['created_username'] | CODE |
| LOW | label_studio/core/static/js/vue.js | 6 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | label_studio/tests/test_core.py | 98 | (['label-studio', 'user', '--username', 'test@test.com', '--password', '12345678'], None), | CODE |
| LOW | …studio/tests/data_manager/actions/test_experimental.py | 257 | 'placeholder': 'Search or add a column', | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 277 | 'value': {'start': 0, 'end': 8, 'text': 'John Doe', 'labels': ['Person']}, | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 289 | 'value': {'start': 0, 'end': 8, 'text': 'John Doe', 'labels': ['Person']}, | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 295 | 'value': {'start': 18, 'end': 27, 'text': 'Acme Corp', 'labels': ['Organization']}, | CODE |
| LOW | label_studio/fsm/tests/test_transitions.py | 684 | required_field='test', email_field='user@example.com', number_field=75 | CODE |
| LOW | label_studio/data_manager/actions/basic.py | 203 | 'placeholder': 'All', | CODE |
| LOW | label_studio/data_manager/actions/data_columns.py | 355 | 'placeholder': 'Search or add a column', | CODE |
| LOW | …level-sentiment-analysis-of-x-twitter-posts/config.xml | 35 | <Header name="username" value="John Doe" /> | CODE |
| LOW | …level-sentiment-analysis-of-x-twitter-posts/config.yml | 42 | <Header name="username" value="John Doe" /> | CODE |
| LOW | web/libs/ui/src/lib/code-editor/cm5-compat-shim.ts | 236 | if (key === "placeholder") { | CODE |
| LOW | …/lib/ai-chat/ai-chat-prompt-bar/ai-chat-prompt-bar.tsx | 52 | "value" | "defaultValue" | "onChange" | "disabled" | "placeholder" | CODE |
| LOW | …rc/lib/collapsible-panel/collapsible-panel.stories.tsx | 259 | {["John Doe", "Jane Smith", "Bob Johnson", "Alice Brown", "Charlie Wilson"].map((name) => ( | CODE |
| LOW | web/libs/ui/src/lib/typography/typography.stories.tsx | 337 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna a | CODE |
| LOW | web/libs/ui/src/lib/typography/typography.stories.tsx | 337 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna a | CODE |
| LOW | web/libs/ui/src/lib/badge-group/badge-group.stories.tsx | 160 | name: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/select/types.ts | 146 | Omit<React.SelectHTMLAttributes<HTMLSelectElement>, "value" | "placeholder">; | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 13 | author: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 65 | name: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 274 | "This is a very long string that will be truncated. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 274 | "This is a very long string that will be truncated. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | web/libs/ui/src/lib/badge/badge.stories.tsx | 438 | { name: "John Doe", email: "john@example.com", role: "Admin", status: "Annotating", verified: true }, | CODE |
| LOW | web/libs/ui/src/lib/data-table/data-table.stories.tsx | 37 | name: "John Doe", | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 2467 | "placeholder": { | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 2468 | "name": "placeholder", | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 3136 | "placeholder": { | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 3137 | "name": "placeholder", | CODE |
| LOW | …sts/integration/e2e/labels/multiple-label-blocks.cy.ts | 238 | Paragraphs.selectText("Lorem ipsum dolor sit amet"); | CODE |
| LOW | …sts/integration/e2e/labels/multiple-label-blocks.cy.ts | 238 | Paragraphs.selectText("Lorem ipsum dolor sit amet"); | CODE |
| LOW | …tests/integration/data/labels/multiple-label-blocks.ts | 159 | text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | …tests/integration/data/labels/multiple-label-blocks.ts | 159 | text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | web/libs/editor/src/stores/__tests__/UserStore.test.js | 28 | expect(store.displayName).toBe("Jane Doe"); | CODE |
| LOW | web/libs/editor/src/stores/__tests__/UserStore.test.js | 53 | expect(user.displayName).toBe("Jane Doe"); | CODE |
| LOW | …/components/TaskSummary/__tests__/TaskSummary.test.tsx | 96 | displayName: "John Doe", | CODE |
| LOW | …/components/TaskSummary/__tests__/TaskSummary.test.tsx | 113 | createdBy: "John Doe", | CODE |
| LOW | docs/source/guide/embed.md | 68 | "user_email": "user@example.com", | CODE |
| LOW | docs/source/guide/embed.md | 93 | user_email: "user@example.com", | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 554 | | Annotator A | "John Smith" | "123 Main St" | "New York" | | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 555 | | Annotator B | "John Smith" | "123 Main Street" | "New York" | | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 558 | - Line 2: "123 Main St" vs "123 Main Street" → **~0.81** | CODE |
| LOW | docs/source/plugins/llm_backend.md | 88 | to_name: "placeholder", | CODE |
| LOW | docs/source/plugins/llm_backend.md | 100 | to_name: "placeholder", | CODE |
| LOW | docs/source/plugins/llm_backend.md | 112 | to_name: "placeholder", | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 168 | <View className="placeholder"> | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 169 | <Text name="placeholder" value="placeholder" /> | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 175 | toName="placeholder" | CODE |
| LOW | docs/source/plugins/llm_backend.md | 189 | toName="placeholder" | CODE |
| LOW | docs/source/plugins/llm_backend.md | 201 | <Choices name="category" toName="placeholder" choice="single" showInLine="true"> | CODE |
| LOW | docs/source/plugins/llm_backend.md | 211 | toName="placeholder" | CODE |
| LOW | docs/source/tags/reactcode.md | 709 | { text: "John Doe", label: "PERSON", start: 0, end: 8 }, | CODE |
| LOW | docs/source/tags/reactcode.md | 727 | "text": "John Doe", | CODE |
| LOW | …tes/two_level_sentiment_analysis_of_x_twitter_posts.md | 58 | <Header name="username" value="John Doe" /> | CODE |
| LOW⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 6 | (function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e= | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/tests/test_serializers.py | 21 | # returns that int (when every task already has a matching prediction), | COMMENT |
| LOW | label_studio/tasks/tests/test_serializers.py | 41 | assert isinstance(predictions, list) | COMMENT |
| LOW | label_studio/core/job_deduplication.py | 1 | """This file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright in | COMMENT |
| LOW | label_studio/core/job_deduplication.py | 21 | # * running_key — set atomically via SET NX when a job is enqueued. Released | COMMENT |
| LOW | label_studio/core/job_deduplication.py | 41 | # | COMMENT |
| LOW | label_studio/core/utils/db.py | 161 | # The iterator position is maintained between calls to islice | COMMENT |
| LOW | label_studio/core/static/js/sw.js | 41 | // For now just catch presign requests and cache them | COMMENT |
| LOW | label_studio/io_storages/proxy_api.py | 101 | # Not all storages support presigned URLs | COMMENT |
| LOW | label_studio/projects/api.py | 441 | instance.delete() | COMMENT |
| LOW | label_studio/tests/shared_stages.yml | 181 | # headers: | COMMENT |
| LOW | label_studio/tests/test_docs.py | 1 | # --- | COMMENT |
| LOW | label_studio/tests/test_annotations.py | 261 | # assert task.annotations.count() == len(annotations) | COMMENT |
| LOW | label_studio/tests/test_annotations.py | 281 | # assert r.status_code == 204 | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 61 | - neg | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 81 | # | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 101 | # choices: | COMMENT |
| LOW | web/netlify.toml | 1 | # Read by the Netlify sites whose base directory is `web`: | COMMENT |
| LOW | web/libs/ui/src/lib/collection-uploader/media-card.tsx | 161 | // Degrade gracefully on an unknown state (e.g. a legacy template snapshot | COMMENT |
| LOW | web/libs/core/src/lib/utils/analytics.ts | 41 | COMMENT | |
| LOW | web/libs/core/src/lib/Tour/Tour.tsx | 21 | console.error("Tour context not found"); | COMMENT |
| LOW | …itor/tests/integration/e2e/sync/audio_paragraphs.cy.ts | 401 | AudioView.isReady(); | COMMENT |
| LOW | web/libs/editor/src/serviceWorker.js | 1 | // This optional code is used to register a service worker. | COMMENT |
| LOW | …bs/editor/src/ml-interactive/InteractiveActionsBar.tsx | 121 | [resolved?.control], | COMMENT |
| LOW | …itor/src/ml-interactive/primitives/useInputHandlers.ts | 221 | target.removeEventListener("click", block, useCapture); | COMMENT |
| LOW | …ditor/src/ml-interactive/primitives/useTrackForward.ts | 321 | typeof trackedRegion.setClosed === "function" | COMMENT |
| LOW | web/libs/editor/src/regions/Result.js | 81 | COMMENT | |
| LOW | web/libs/editor/src/tools/VideoVector.js | 361 | // No bezier: mousemove is a no-op | COMMENT |
| LOW | web/libs/editor/src/stores/Annotation/Annotation.js | 1241 | COMMENT | |
| LOW | web/libs/editor/src/stores/Annotation/HistoryItem.js | 1 | import { types } from "mobx-state-tree"; | COMMENT |
| LOW | web/libs/editor/src/stores/__tests__/TaskStore.test.js | 61 | // const initialState = { | COMMENT |
| LOW | web/libs/editor/src/utils/magic-wand.js | 1 | /* eslint-disable prefer-const */ | COMMENT |
| LOW | web/libs/editor/src/tags/control/Choices.jsx | 161 | }, | COMMENT |
| LOW | …ibs/editor/src/components/KonvaVector/eventHandlers.ts | 1 | // This file has been refactored into smaller, more manageable chunks. | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 1 | { | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 21 | // "noEmit": true, /* Do not emit outputs. */ | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 41 | /* Module Resolution Options */ | COMMENT |
| LOW | web/apps/labelstudio-e2e/src/support/e2e.ts | 1 | // *********************************************************** | COMMENT |
| LOW | docs/source/guide/install_enterprise_docker.md | 101 | # Optional: PostgreSQL SSL mode | COMMENT |
| LOW | docs/source/guide/install_enterprise_docker.md | 121 | # Optional: Redis socket timeout | COMMENT |
| LOW | docs/source/templates/react_claims.md | 81 | // - Hierarchical tree view of agent steps (thoughts, tool calls, sub-agents, outputs) | COMMENT |
| LOW | docs/source/templates/interfaces-agent-eval.md | 181 | // Emits up to five independent results, all with to_name: "run": | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 1281 | // One-char codes used for character types: | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 3641 | } | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 7321 | } | COMMENT |
| LOW | .devcontainer/docker-compose.yml | 1 | version: "3.3" | COMMENT |
| LOW | .devcontainer/docker-compose.yml | 21 | # dockerfile: .devcontainer/Dockerfile | COMMENT |
| LOW | .devcontainer/devcontainer.json | 41 | "ms-azuretools.vscode-docker", | COMMENT |
| LOW | .github/workflows/invite-check.yml | 21 | uses: slackapi/slack-github-action@v4.0 | COMMENT |
| LOW | .github/workflows/invite-check.yml | 41 | # with: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/api.py | 1170 | # Check if task is being skipped and if it's allowed | STRING |
| LOW | label_studio/core/label_config.py | 282 | is_value_list = 'valueList' in p.attrib # Check if the attribute is 'valueList' | CODE |
| LOW | label_studio/core/label_config.py | 423 | # Check if formatted string is monotonic (to handle cycling due to format truncation) | COMMENT |
| LOW | label_studio/core/middleware.py | 309 | # Check if this request is too far from when the login happened | COMMENT |
| LOW | label_studio/core/management/commands/locked_migrate.py | 62 | # Check if the maximum wait time has been reached | COMMENT |
| LOW | label_studio/core/utils/db.py | 228 | # Check if we're in an async context and need to allow async-unsafe operations | COMMENT |
| LOW | label_studio/io_storages/proxy_api.py | 107 | # Check if storage should use presigned URLs; | COMMENT |
| LOW | label_studio/io_storages/proxy_api.py | 209 | # Check if we've exceeded our time limit | COMMENT |
| LOW | label_studio/io_storages/base_models.py | 780 | # Check if file should be processed as JSON based on extension | COMMENT |
| LOW⚡ | label_studio/io_storages/api.py | 218 | # Check if we've reached the file limit | COMMENT |
| LOW⚡ | label_studio/io_storages/api.py | 223 | # Check if we've exceeded the timeout | COMMENT |
| LOW | label_studio/io_storages/utils.py | 249 | # Check if we got any items - if not, it's an empty array which is valid | COMMENT |
| LOW | label_studio/io_storages/localfiles/views.py | 59 | # Check if the client's cached representation matches the current file | COMMENT |
| LOW | label_studio/projects/models.py | 760 | # Check if labels created in annotations, and their control tag has been removed | COMMENT |
| LOW | label_studio/projects/functions/utils.py | 29 | # Check if it's a list of IDs (integers) | COMMENT |
| LOW | label_studio/projects/functions/utils.py | 40 | # Check if it's a set of IDs (integers) | COMMENT |
| LOW | label_studio/projects/functions/next_task.py | 94 | # Check if user is in onboarding window - return early if not | COMMENT |
| LOW | label_studio/ml_model_providers/models.py | 134 | # Check if user is Admin or Owner | COMMENT |
| LOW | label_studio/fsm/state_manager.py | 568 | # Check if enterprise has configured a custom state manager | COMMENT |
| LOW | label_studio/fsm/models.py | 208 | # Check if this transition should execute based on trigger metadata | COMMENT |
| LOW | label_studio/fsm/models.py | 225 | # Check if any trigger fields changed | COMMENT |
| LOW | label_studio/fsm/models.py | 247 | # Check if should_execute is overridden (not using the base implementation) | COMMENT |
| LOW | label_studio/fsm/models.py | 380 | # Check if this is a creation vs update | COMMENT |
| LOW | label_studio/fsm/transition_executor.py | 140 | # Check if this transition forces state record creation (for audit trails) | COMMENT |
| LOW | label_studio/fsm/serializer_fields.py | 115 | # Check if the instance has a state annotation | COMMENT |
| LOW | label_studio/users/serializers.py | 228 | # Check if the action key follows the section:action format | COMMENT |
| LOW | label_studio/users/functions/last_activity.py | 70 | # Increment counter | COMMENT |
| LOW | label_studio/users/functions/last_activity.py | 125 | # Set expiration to match other keys | COMMENT |
| LOW | label_studio/webhooks/utils.py | 154 | # Check if batching is needed | COMMENT |
| LOW | …ocker-entrypoint.d/common/05-check-data-permissions.sh | 7 | # Check if data directory is writable | COMMENT |
| LOW | …r-entrypoint.d/app-docker/05-check-data-permissions.sh | 7 | # Check if data directory is writable | COMMENT |
| LOW | docs/_config.yml | 92 | ## Set per_page to 0 to disable pagination | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/result_utils.py | 10 | CODE | |
| LOW | label_studio/core/version.py | 1 | CODE | |
| LOW | label_studio/core/settings/label_studio.py | 5 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | …_studio/core/management/commands/check_schema_drift.py | 14 | CODE | |
| LOW | label_studio/core/utils/common.py | 3 | CODE | |
| LOW | label_studio/core/utils/common.py | 786 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | …o_storages/tests/test_storage_prediction_validation.py | 9 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 11 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 11 | CODE | |
| LOW | label_studio/tests/conftest.py | 35 | CODE | |
| LOW | label_studio/tests/conftest.py | 30 | CODE | |
| LOW | label_studio/fsm/registry.py | 15 | CODE | |
| LOW | label_studio/fsm/registry.py | 16 | CODE | |
| LOW | label_studio/fsm/apps.py | 30 | CODE | |
| LOW | label_studio/fsm/apps.py | 30 | CODE | |
| LOW | label_studio/fsm/apps.py | 38 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/users/functions/__init__.py | 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/source/templates/chat_rlhf.md | 190 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_llm_eval.md | 164 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chatbot.md | 190 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_red_team.md | 176 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_eval.md | 82 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/core/argparser.py | 160 | default_params = '{"annotations__completed_by": {"only_id": null}, "interpolate_key_frames": true}' | CODE |
| HIGH | label_studio/io_storages/base_models.py | 765 | # pubsub.push(topic, key) | COMMENT |
| HIGH⚡ | …bel_studio/io_storages/tests/test_storage_unique_id.py | 113 | """Export JSON may include import_id: null; export id should still map.""" | STRING |
| HIGH | …el_studio/tests/test_data/gen_tasks_and_annotations.py | 21 | tc_template = """{"id": %s,"review_result":null,"ground_truth":false,"result":[{"id":"MGK92Ogo4t","type":"choices","valu | CODE |
| HIGH | …bel_studio/tests/data_manager/test_ordering_filters.py | 47 | def test_views_ordering(ordering, element_index, undefined, business_client, project_id): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/core/settings/base.py | 317 | # Typical secure configuration is simply set CORS_ALLOW_ALL_ORIGINS = False in the env | COMMENT |
| MEDIUM | label_studio/io_storages/base_models.py | 908 | # needed to facilitate debugging storage-related testcases, since otherwise no exception is logged | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 46 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 21 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_api_example.py | 66 | """Task assignment via API with comprehensive validation""" | STRING |
| MEDIUM | label_studio/data_manager/serializers.py | 243 | # Allow underscores if the filter is based on the `task.data` JSONField, because these don't leverage foreig | COMMENT |
| LOW | label_studio/jwt_auth/views.py | 149 | # Would be ideal to just add a "blacklisted" attr to our own subclass of | COMMENT |
| MEDIUM | web/libs/editor/examples/sentiment_analysis/tasks.json | 907 | "reviewText": "This is good cable. Excellent 1/4" plugs. The lugs and solder joints are covered with hea | CODE |
| MEDIUM | …libs/editor/src/examples/sentiment_analysis/tasks.json | 737 | "reviewText": "This is good cable. Excellent 1/4" plugs. The lugs and solder joints are covered with heat shri | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/organizations/middleware.py | 23 | CODE | |
| LOW | label_studio/tasks/functions.py | 27 | CODE | |
| LOW | label_studio/core/current_request.py | 150 | CODE | |
| LOW | label_studio/core/storage.py | 135 | CODE | |
| LOW | label_studio/projects/serializers.py | 401 | CODE | |
| LOW | …el_studio/tests/test_storage_create_list_edge_cases.py | 47 | CODE | |
| LOW | label_studio/users/functions/common.py | 93 | CODE | |
| LOW | …lpers/gh_changelog_generator/gh_changelog_generator.py | 353 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …l_studio/users/product_tours/configs/create_prompt.yml | 10 | content: '<div style="width: 100%;">We’ve gone ahead and generated a prompt for you based on your project’s labeling c | CODE |
| MEDIUM | web/libs/core/src/lib/utils/schema/tags.json | 796 | "description": "Video tag plays a simple video file. Use for video annotation tasks such as classification and trans | CODE |
| MEDIUM | .devcontainer/docker-compose.yml | 5 | # If you want add a non-root user to your Dockerfile, you can use the "remoteUser" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/labelstudio/src/components/HeidiTips/liveContent.json | 244 | "url": "https://humansignal.com/blog/introducing-human-in-the-loop-evaluation-for-agentic-ai-observability/", | CODE |
| MEDIUM | docs/source/guide/enterprise_features.md | 248 | ### Low-trust annotator guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/models.py | 1225 | # TODO: handle exceptions better | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/data_manager/actions/__init__.py | 158 | def perform_action(action_id, project, queryset, user, **kwargs): | CODE |