Flagsmith is an open source feature flagging and remote config service. Self-host or use our hosted version at https://app.flagsmith.com.
This report presents the forensic synthetic code analysis of Flagsmith/flagsmith, a Python project with 6,445 GitHub stars. SynthScan v2.0 examined 390,386 lines of code across 2768 source files, recording 3850 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 10.5 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3850 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/web/components/modals/base/Modal.tsx | 78 | function getOrCreateRoot( | CODE |
| LOW | …end/web/components/pages/CreateReleasePipelinePage.tsx | 3 | export default function CreateReleasePipelinePage() { | CODE |
| LOW | …end/web/components/pages/ReleasePipelineDetailPage.tsx | 3 | export default function ReleasePipelineDetailPage() { | CODE |
| LOW | frontend/.claude/scripts/sync-types-helper.py | 55 | def find_types_using_serializer( | CODE |
| LOW | frontend/common/utils/metadataValidation.ts | 10 | export function getGlobalMetadataValidationState( | CODE |
| LOW | frontend/common/utils/metadataValidation.ts | 25 | export function useGlobalMetadataValidation( | CODE |
| LOW | frontend/common/hooks/useFeatureExperimentFreeze.ts | 12 | export function useFeatureExperimentFreeze( | CODE |
| LOW | frontend/common/services/useVersionFeatureState.ts | 81 | export async function createVersionFeatureState( | CODE |
| LOW | frontend/common/services/useVersionFeatureState.ts | 95 | export async function updateVersionFeatureState( | CODE |
| LOW | frontend/common/services/useVersionFeatureState.ts | 109 | export async function deleteVersionFeatureState( | CODE |
| LOW | frontend/common/services/useRolePermission.ts | 105 | export async function getRoleOrganisationPermissions( | CODE |
| LOW | frontend/common/services/useRolePermission.ts | 140 | export async function getRoleProjectPermissions( | CODE |
| LOW | frontend/common/services/useRolePermission.ts | 155 | export async function getRoleEnvironmentPermissions( | CODE |
| LOW | frontend/common/services/useFlagsmithProjectImport.ts | 31 | export async function createFlagsmithProjectImport( | CODE |
| LOW | …common/services/useMasterAPIKeyWithMasterAPIKeyRole.ts | 58 | export async function getMasterAPIKeyWithMasterAPIKeyRoles( | CODE |
| LOW | …common/services/useMasterAPIKeyWithMasterAPIKeyRole.ts | 73 | export async function getRolesMasterAPIKeyWithMasterAPIKeyRoles( | CODE |
| LOW | …common/services/useMasterAPIKeyWithMasterAPIKeyRole.ts | 88 | export async function deleteMasterAPIKeyWithMasterAPIKeyRoles( | CODE |
| LOW | …common/services/useMasterAPIKeyWithMasterAPIKeyRole.ts | 102 | export async function updateMasterAPIKeyWithMasterAPIKeyRoles( | CODE |
| LOW | frontend/common/services/useRolesUser.ts | 43 | export async function createPermissionRolesUsers( | CODE |
| LOW | frontend/common/services/useRolesUser.ts | 57 | export async function deletePermissionRolesUsers( | CODE |
| LOW | frontend/common/services/useServersideEnvironmentKey.ts | 44 | export async function createServersideEnvironmentKeys( | CODE |
| LOW | frontend/common/services/useServersideEnvironmentKey.ts | 58 | export async function deleteServersideEnvironmentKeys( | CODE |
| LOW | frontend/common/services/useServersideEnvironmentKey.ts | 72 | export async function getServersideEnvironmentKeys( | CODE |
| LOW | frontend/common/services/useReleasePipelines.ts | 169 | export async function removeFeatureFromReleasePipeline( | CODE |
| LOW | frontend/common/services/useFeatureVersion.ts | 304 | export async function createAndSetFeatureVersion( | CODE |
| LOW | frontend/common/services/useOnboardingSupportOptIn.ts | 24 | export async function createOnboardingSupportOptIn( | CODE |
| LOW | frontend/common/services/useMetadataField.ts | 276 | export async function getProjectMetadataFieldList( | CODE |
| LOW | frontend/common/services/useSamlConfiguration.ts | 147 | export async function getSamlConfigurationMetadata( | CODE |
| LOW | …ontend/common/services/useLaunchDarklyProjectImport.ts | 42 | export async function createLaunchDarklyProjectImport( | CODE |
| LOW | …ontend/common/services/useLaunchDarklyProjectImport.ts | 56 | export async function getLaunchDarklyProjectImport( | CODE |
| LOW | …ontend/common/services/useLaunchDarklyProjectImport.ts | 70 | export async function getLaunchDarklyProjectsImport( | CODE |
| LOW | frontend/common/services/useMetadataModelField.ts | 108 | export async function getMetadataModelFieldList( | CODE |
| LOW | frontend/common/services/useProjectChangeRequest.ts | 9 | export function stripIdsAndDeletedFromRulesAndConditions( | CODE |
| LOW | frontend/common/services/useProjectChangeRequest.ts | 140 | export async function createProjectChangeRequest( | CODE |
| LOW | frontend/common/services/useProjectChangeRequest.ts | 155 | export async function updateProjectChangeRequest( | CODE |
| LOW | frontend/common/services/useIdentityFeatureState.ts | 44 | export async function getIdentityFeatureStateAll( | CODE |
| LOW | frontend/common/services/useIdentityFeatureState.ts | 59 | export async function createIdentityFeatureStates( | CODE |
| LOW | frontend/common/services/useOrganisationLicensing.ts | 28 | export async function uploadOrganisationLicence( | CODE |
| LOW | frontend/common/services/useSamlAttributeMapping.ts | 54 | export async function createSamlAttributeMapping( | CODE |
| LOW | frontend/common/services/useSamlAttributeMapping.ts | 68 | export async function deleteSamlAttributeMapping( | CODE |
| LOW | frontend/common/services/useSamlAttributeMapping.ts | 96 | export async function updateSamlAttributeMapping( | CODE |
| LOW | frontend/common/services/useRolePermissionGroup.ts | 60 | export async function createRolePermissionGroup( | CODE |
| LOW | frontend/common/services/useRolePermissionGroup.ts | 77 | export async function deleteRolePermissionGroup( | CODE |
| LOW | frontend/common/services/useRolePermissionGroup.ts | 111 | export async function updateRolePermissionGroup( | CODE |
| LOW | frontend/e2e/helpers/visual-regression.ts | 63 | export function isVisualRegressionEnabled(): boolean { | CODE |
| LOW | mcp/tests/unit/test_event_logging.py | 7 | def test_get_client_info__outside_request_context__returns_none() -> None: | CODE |
| LOW | mcp/tests/unit/test_event_logging.py | 13 | def test_get_client_info__no_client_params__returns_none( | CODE |
| LOW | mcp/tests/unit/test_event_logging.py | 24 | async def test_event_logging_middleware__no_client_info__empty_client_identity( | CODE |
| LOW | mcp/tests/unit/test_auth.py | 8 | def test_flagsmith_auth__header_in_http_request__forwards_to_upstream() -> None: | CODE |
| LOW | mcp/tests/unit/test_auth.py | 24 | def test_flagsmith_auth__no_http_request__leaves_upstream_unchanged() -> None: | CODE |
| LOW | mcp/tests/unit/test_auth.py | 35 | def test_flagsmith_auth__static_token_no_http_request__uses_api_key() -> None: | CODE |
| LOW | mcp/tests/unit/test_auth.py | 46 | def test_flagsmith_auth__forwarded_header__wins_over_static_token() -> None: | CODE |
| LOW | mcp/tests/unit/test_auth.py | 61 | def test_flagsmith_auth__upstream_already_authorized__does_not_override() -> None: | CODE |
| LOW | mcp/tests/unit/test_server.py | 68 | async def test_create_server__mcp_route__annotates_tool_per_method( | CODE |
| LOW | mcp/tests/unit/test_server.py | 94 | async def test_create_server__untagged_route__excluded_from_tools( | CODE |
| LOW | mcp/tests/unit/test_server.py | 127 | def test_run__configured_transport__runs_server_with_it( | CODE |
| LOW | mcp/tests/unit/test_server.py | 149 | def test_run__metrics_port_unset__metrics_server_not_started( | CODE |
| LOW | mcp/tests/unit/test_server.py | 167 | def test_run__metrics_port_set__metrics_server_started_with_it( | CODE |
| LOW | mcp/tests/unit/test_server.py | 185 | def test_run__http_transport__banner_off_uvicorn_logs_propagated( | CODE |
| LOW | mcp/tests/unit/test_config.py | 7 | def test_settings__unset__uses_saas_defaults(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| 3168 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/platform_hub/mappers.py | 1 | CODE | |
| LOW | api/edge_api/identities/apps.py | 10 | CODE | |
| LOW | api/edge_api/identities/utils.py | 6 | CODE | |
| LOW | api/edge_api/identities/utils.py | 6 | CODE | |
| LOW | api/api_keys/user.py | 18 | CODE | |
| LOW | api/api_keys/user.py | 19 | CODE | |
| LOW | api/custom_auth/apps.py | 8 | CODE | |
| LOW | api/custom_auth/mfa/trench/urls/__init__.py | 1 | CODE | |
| LOW | api/custom_auth/mfa/trench/views/__init__.py | 1 | CODE | |
| LOW | api/sse/__init__.py | 1 | CODE | |
| LOW | api/sse/__init__.py | 1 | CODE | |
| LOW | api/core/models.py | 21 | CODE | |
| LOW | api/core/models.py | 22 | CODE | |
| LOW | api/core/models.py | 23 | CODE | |
| LOW | api/core/constants.py | 1 | CODE | |
| LOW | api/core/throttling.py | 10 | CODE | |
| LOW | api/core/throttling.py | 11 | CODE | |
| LOW | api/core/dataclasses.py | 5 | CODE | |
| LOW | api/core/dataclasses.py | 7 | CODE | |
| LOW | api/core/workflows_services.py | 14 | CODE | |
| LOW | api/core/workflows_services.py | 15 | CODE | |
| LOW | api/app/settings/local.py | 3 | CODE | |
| LOW | api/app/settings/test.py | 1 | CODE | |
| LOW | api/app/settings/develop.py | 1 | CODE | |
| LOW | api/app/settings/production.py | 1 | CODE | |
| LOW | api/experimentation/services.py | 1 | CODE | |
| LOW | api/experimentation/models.py | 17 | CODE | |
| LOW | api/experimentation/ingestion_sync_service.py | 1 | CODE | |
| LOW | api/experimentation/views.py | 6 | CODE | |
| LOW | api/experimentation/views.py | 27 | CODE | |
| LOW | api/app_analytics/types.py | 6 | CODE | |
| LOW | api/util/engine_models/context/mappers.py | 26 | CODE | |
| LOW | api/util/mappers/sdk.py | 10 | CODE | |
| LOW | api/util/mappers/dynamodb.py | 11 | CODE | |
| LOW | api/util/mappers/dynamodb.py | 33 | CODE | |
| LOW | api/util/mappers/dynamodb.py | 34 | CODE | |
| LOW | api/util/mappers/dynamodb.py | 34 | CODE | |
| LOW | api/util/mappers/dynamodb.py | 35 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 1 | CODE | |
| LOW | api/util/mappers/__init__.py | 13 | CODE | |
| LOW | api/util/mappers/__init__.py | 13 | CODE | |
| LOW | api/util/mappers/__init__.py | 13 | CODE | |
| LOW | api/util/mappers/__init__.py | 13 | CODE | |
| LOW | api/util/mappers/__init__.py | 19 | CODE | |
| LOW | api/util/mappers/engine.py | 37 | CODE | |
| LOW | api/util/mappers/engine.py | 37 | CODE | |
| LOW | api/util/mappers/engine.py | 41 | CODE | |
| LOW | api/util/mappers/engine.py | 41 | CODE | |
| LOW | api/util/mappers/engine.py | 42 | CODE | |
| LOW | api/util/mappers/engine.py | 42 | CODE | |
| LOW | api/util/mappers/engine.py | 42 | CODE | |
| 235 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | api/app_analytics/models.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/features/models.py | 449 | and self.feature.project.organisation.github_config.exists() | CODE |
| CRITICAL | api/features/serializers.py | 704 | and feature_state.environment.project.organisation.github_config.exists() # type: ignore[union-attr] | CODE |
| CRITICAL | api/features/multivariate/serializers.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/features/versioning/serializers.py | 49 | and feature_state.environment.project.organisation.github_config.exists() | CODE |
| CRITICAL | api/tests/unit/app_analytics/test_models.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …namodb/wrappers/test_unit_dynamodb_identity_wrapper.py | 274 | mocked_dynamo_table.batch_writer.return_value.__enter__.return_value.put_item.assert_not_called() | CODE |
| CRITICAL | api/tests/unit/features/test_unit_features_models.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ions/lead_tracking/hubspot/test_unit_hubspot_client.py | 164 | hubspot_client.client.crm.companies.search_api.do_search.assert_called_once() | CODE |
| CRITICAL | …ions/lead_tracking/hubspot/test_unit_hubspot_client.py | 210 | hubspot_client.client.crm.companies.basic_api.create.assert_called_once() | CODE |
| CRITICAL | api/tests/unit/oauth2_metadata/test_services.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/tests/unit/segments/test_unit_segments_models.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/integrations/lead_tracking/hubspot/client.py | 41 | response = self.client.crm.contacts.batch_api.read( | CODE |
| CRITICAL | api/integrations/lead_tracking/hubspot/client.py | 133 | response = self.client.crm.companies.search_api.do_search( | CODE |
| CRITICAL | api/integrations/lead_tracking/hubspot/client.py | 166 | response = self.client.crm.companies.basic_api.create( | CODE |
| CRITICAL | api/integrations/lead_tracking/hubspot/client.py | 189 | response = self.client.crm.companies.basic_api.update( | CODE |
| CRITICAL | api/oauth2_metadata/services.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/oauth2_metadata/serializers.py | 3 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | api/segments/models.py | 8 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/.claude/scripts/sync-types-helper.py | 72 | def update_metadata(stats: Dict) -> None: | CODE |
| LOW | api/metrics/metrics_service.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/edge_api/management/commands/migrate_to_edge_v2.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/edge_api/identities/tasks.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/edge_api/identities/export.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/custom_auth/oauth/github.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/custom_auth/oauth/views.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/custom_auth/oauth/helpers/github_helpers.py | 5 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/custom_auth/mfa/trench/urls/base.py | 3 | __all__ = [ | CODE |
| LOW | api/sse/tasks.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/sse/sse_service.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/import_export/export.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/import_export/import_.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | …xport/management/commands/dumporganisationtolocalfs.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …export/management/commands/importorganisationfroms3.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ort_export/management/commands/dumporganisationtos3.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/core/signals.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/core/models.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/core/middleware/admin.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/core/management/commands/waitfordb.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/app/views.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/experimentation/services.py | 608 | def _update_rollout_in_place(experiment: Experiment, change_set: FlagChangeSet) -> None: | CODE |
| LOW | api/experimentation/views.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/app_analytics/influxdb_wrapper.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/app_analytics/track.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/app_analytics/views.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/util/engine_models/features/models.py | 80 | def set_value(self, value: typing.Any) -> None: | CODE |
| LOW | api/environments/models.py | 67 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/environments/models.py | 180 | def update_environment_document_cache(self) -> None: | CODE |
| LOW | api/environments/models.py | 497 | def set_bad_key(environment_key: str) -> None: | CODE |
| LOW | api/environments/views.py | 67 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/environments/dynamodb/services.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/environments/dynamodb/wrappers/identity_wrapper.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/environments/identities/traits/fields.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i/projects/management/commands/createinitialproject.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/signals.py | 5 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/tasks.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/models.py | 85 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/views.py | 116 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/release_pipelines/core/models.py | 269 | def set_initial_split(self) -> None: | CODE |
| LOW | api/features/feature_external_resources/models.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/workflows/core/models.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/feature_health/services.py | 95 | def update_feature_unhealthy_tag(feature: "Feature") -> None: | CODE |
| LOW | api/features/feature_health/tasks.py | 10 | def update_feature_unhealthy_tag(feature_id: int) -> None: | CODE |
| LOW | api/features/feature_states/models.py | 46 | def set_value(self, value: str, type_: FeatureValueType) -> None: | CODE |
| LOW | api/features/versioning/tasks.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/features/versioning/versioning_service.py | 327 | def _update_segment_priority(feature_state: FeatureState, priority: int) -> None: | CODE |
| LOW | api/features/feature_segments/views.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | api/tests/conftest.py | 1298 | def set_github_webhook_secret() -> None: | CODE |
| LOW | …/integrations/github/test_unit_github_cleanup_issue.py | 30 | def set_github_pat(settings: SettingsWrapper) -> None: | CODE |
| LOW | api/integrations/webhook/webhook.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/integrations/dynatrace/dynatrace.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/integrations/dynatrace/models.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/integrations/gitlab/views/__init__.py | 9 | __all__ = [ | CODE |
| LOW | api/integrations/gitlab/client/__init__.py | 22 | __all__ = [ | CODE |
| LOW | api/integrations/gitlab/services/__init__.py | 31 | __all__ = [ | CODE |
| LOW | api/integrations/gitlab/services/tagging.py | 23 | def set_gitlab_tag(feature: Feature, new_label: GitLabTagLabel) -> None: | CODE |
| LOW | api/integrations/lead_tracking/hubspot/services.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/integrations/lead_tracking/hubspot/client.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/integrations/lead_tracking/hubspot/lead_tracker.py | 14 | logger = logging.getLogger(__name__) | CODE |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | api/app/settings/common.py | 1271 | # Define the cooldown duration, in seconds, for password reset emails | COMMENT |
| MEDIUM | api/app/settings/common.py | 1273 | # Define the threshold, in minutes, for updating the last login timestamp | COMMENT |
| MEDIUM | api/tests/unit/core/test_unit_core_migration_helpers.py | 39 | # Create a temporary file | COMMENT |
| MEDIUM | api/tests/unit/features/test_unit_features_views.py | 3916 | # Create a secondary feature state that will be versioned in the past. | COMMENT |
| MEDIUM | …mport_export/test_unit_features_import_export_views.py | 230 | # Create a FeatureImport that's processing already. | COMMENT |
| MEDIUM | …mport_export/test_unit_features_import_export_views.py | 428 | # Create a FeatureImport that will be filtered out. | COMMENT |
| MEDIUM | …mport_export/test_unit_features_import_export_views.py | 435 | # Create a FeatureImport that will be included | COMMENT |
| MEDIUM | …mport_export/test_unit_features_import_export_tasks.py | 154 | # Create the receiving organisation, project, etc. | COMMENT |
| MEDIUM | …mport_export/test_unit_features_import_export_tasks.py | 301 | # Create the receiving organisation, project, etc. | COMMENT |
| MEDIUM | …tures/feature_states/test_unit_feature_states_views.py | 656 | # Create the segment override manually | COMMENT |
| MEDIUM | …tures/feature_states/test_unit_feature_states_views.py | 718 | # Create the segment override manually | COMMENT |
| MEDIUM | …ts/unit/organisations/test_unit_organisations_views.py | 2080 | # Create a notification in the past which should not be shown. | COMMENT |
| MEDIUM | …s/unit/organisations/test_unit_organisations_models.py | 619 | # Create a notification which should be deleted shortly. | COMMENT |
| MEDIUM | …ts/unit/organisations/test_unit_organisations_tasks.py | 452 | # Create an OrganisationApiUsageNotification object for another organisation | COMMENT |
| MEDIUM | api/tests/unit/audit/test_unit_audit_signals.py | 469 | # Create an AuditLog as if it was created for a FeatureStateValue update | COMMENT |
| MEDIUM | api/tests/unit/audit/test_unit_audit_signals.py | 583 | # Create an audit log for a Feature (not FeatureState) | COMMENT |
| MEDIUM | api/tests/unit/users/test_unit_users_views.py | 261 | # Create a group | COMMENT |
| MEDIUM | api/tests/unit/api/test_unit_openapi.py | 28 | # Create an extension instance targeting the ResponseModel | COMMENT |
| MEDIUM | api/tests/unit/api/test_unit_openapi.py | 33 | # Create a mock AutoSchema with a registry | COMMENT |
| MEDIUM | api/tests/unit/segments/test_unit_segments_views.py | 231 | # Create the first segment (at the limit) | COMMENT |
| MEDIUM | api/tests/unit/segments/test_unit_segments_views.py | 1705 | # Create the whitelist to stop the validation. | COMMENT |
| MEDIUM | …ion/sentry/test_change_tracking_webhook_integration.py | 188 | # Create a new EFV draft | COMMENT |
| MEDIUM | api/integrations/lead_tracking/hubspot/lead_tracker.py | 62 | # Create the contact. HubSpot handles company creation and association | COMMENT |
| MEDIUM⚡ | api/integrations/launch_darkly/services.py | 325 | # Create a negated child if it doesn't exist. | COMMENT |
| MEDIUM⚡ | api/integrations/launch_darkly/services.py | 333 | # Create a new child rule if it doesn't exist. Each child rule is "AND"ed together because | COMMENT |
| MEDIUM⚡ | api/integrations/launch_darkly/services.py | 341 | # Create a condition for each value. Each condition is "OR"ed together. | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 407 | # Create a feature specific segment for the rule. | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 412 | # Create a targeting rule for the new feature-specific segment. | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 457 | # Create a segment override for those identities. This is a work-around to support individual | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 639 | # Create the feature segment for the given rule and get the feature state objects from those | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 970 | # Create a condition to match against those identities via "key" trait. | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 1027 | # Create the segment rule for the segment. | COMMENT |
| MEDIUM | api/integrations/launch_darkly/services.py | 1073 | # Create an empty rule if there are no rules. This is required to create an "SegmentRule" object. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …settings/tabs/warehouse-tab/WarehouseEventCodeHelp.tsx | 21 | print('Hello, Flagsmith Warehouse!');`, | CODE |
| HIGH | …settings/tabs/warehouse-tab/WarehouseEventCodeHelp.tsx | 108 | print("Hello, Flagsmith Warehouse!")`, | CODE |
| HIGH⚡ | frontend/common/code-help/init/init-ios.js | 18 | print(result) | CODE |
| HIGH⚡ | frontend/common/code-help/init/init-ios.js | 26 | print(value ?? "nil") | CODE |
| HIGH⚡ | frontend/common/code-help/init/init-ios.js | 28 | print(error) | CODE |
| HIGH | frontend/common/code-help/traits/traits-ios.js | 5 | print(error) | CODE |
| HIGH⚡ | …ontend/common/code-help/create-user/create-user-ios.js | 24 | print(result) | CODE |
| HIGH⚡ | …ontend/common/code-help/create-user/create-user-ios.js | 34 | print(value ?? "nil") | CODE |
| HIGH⚡ | …ontend/common/code-help/create-user/create-user-ios.js | 36 | print(error) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/.claude/context/api-integration.md | 13 | ### Step 1: Find Backend Endpoint | COMMENT |
| LOW | frontend/.claude/context/api-integration.md | 19 | ### Step 2: Add Request Type | COMMENT |
| LOW | frontend/.claude/context/api-integration.md | 32 | ### Step 3: Add RTK Query Endpoint | COMMENT |
| LOW | frontend/.claude/context/api-integration.md | 63 | ### Step 4: Use in Component | COMMENT |
| LOW | frontend/.claude/context/api-integration.md | 88 | ### Step 5: Run Linter | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 11 | ### Step 1: Check Backend API | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 20 | ### Step 2: Add Request Type | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 33 | ### Step 3: Extend RTK Query Service | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 63 | ### Step 4: Create Table Component | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 93 | ### Step 5: Add Tabs to Page | COMMENT |
| LOW | frontend/.claude/context/patterns/index.md | 122 | ### Step 6: Run Linter | COMMENT |
| LOW | frontend/common/services/useFeatureVersion.ts | 95 | // Step 1: Create a new feature version | COMMENT |
| LOW | …ing-with-flagsmith/sdks/client-side-sdks/javascript.md | 371 | ### Step 1: Initialise your Datadog RUM SDK with the feature_flags experimental feature | COMMENT |
| LOW | …ing-with-flagsmith/sdks/client-side-sdks/javascript.md | 386 | ### Step 2: Initialise the Flagsmith SDK with configuring | COMMENT |
| LOW | …ing-with-flagsmith/sdks/client-side-sdks/javascript.md | 404 | ### Step 3: What happens next | COMMENT |
| LOW | …ing-with-flagsmith/sdks/client-side-sdks/javascript.md | 432 | ### Step 1: Pass `enableDynatrace` into `flagsmith.init()` | COMMENT |
| LOW | …ing-with-flagsmith/sdks/client-side-sdks/javascript.md | 458 | ### Step 2: Add the session properties to your Dynatrace application settings | COMMENT |
| LOW | …egrating-with-flagsmith/sdks/client-side-sdks/react.md | 43 | ### Step 1: Wrapping your application with Flagsmith Provider | COMMENT |
| LOW | …egrating-with-flagsmith/sdks/client-side-sdks/react.md | 72 | ### Step 2: Using useFlags to access feature values and enabled state | COMMENT |
| LOW | …egrating-with-flagsmith/sdks/client-side-sdks/react.md | 108 | ### Step 3: Using useFlagsmith to access the Flagsmith instance | COMMENT |
| LOW⚡ | docs/docs/third-party-integrations/analytics/heap.md | 55 | ### Step 1 - Create a Custom Event Definition | COMMENT |
| LOW⚡ | docs/docs/third-party-integrations/analytics/heap.md | 61 | ### Step 2 - Create a Segment based on this new Custom Event Property | COMMENT |
| LOW⚡ | docs/docs/third-party-integrations/analytics/heap.md | 67 | ### Step 3 - Create your Report | COMMENT |
| LOW | …ministration-and-maintenance/upgrades-and-rollbacks.md | 45 | ### Step 1: Generate Rollback Commands | COMMENT |
| LOW | …ministration-and-maintenance/upgrades-and-rollbacks.md | 80 | ### Step 2: Execute the Rollback Commands | COMMENT |
| LOW | docs/docs/performance/edge-api.md | 64 | ### Step 1 - Prepare your applications | COMMENT |
| LOW | docs/docs/performance/edge-api.md | 68 | ### Step 2 - Migrate your data | COMMENT |
| LOW | docs/docs/performance/edge-api.md | 84 | ### Step 3 - Deploy your applications | COMMENT |
| LOW | docs/docs/managing-flags/release-pipeline.md | 26 | ### Step 1: Navigate to Release Pipelines | COMMENT |
| LOW | docs/docs/managing-flags/release-pipeline.md | 34 | ### Step 2: Configure Pipeline Settings | COMMENT |
| LOW | api/telemetry/middleware.py | 31 | # NOTE: The following W3C Baggage items are added by downstream processor | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/edge_api/identities/views.py | 0 | get environment object from url parameters in request. | STRING |
| HIGH | api/environments/identities/views.py | 0 | get environment object from url parameters in request. | STRING |
| HIGH | api/features/views.py | 0 | get environment object from url parameters in request. | STRING |
| HIGH | …sions/permission_service/test_is_user_project_admin.py | 0 | specific test to verify that a user no longer has permission to access resources via a group, if they no longer belong t | STRING |
| HIGH | …on_service/test_get_permitted_environments_for_user.py | 0 | specific test to verify that a user no longer has permission to access resources via a group, if they no longer belong t | STRING |
| HIGH | …s/permission_service/test_is_user_environment_admin.py | 0 | specific test to verify that a user no longer has permission to access resources via a group, if they no longer belong t | STRING |
| HIGH | …ission_service/test_get_permitted_projects_for_user.py | 0 | specific test to verify that a user no longer has permission to access resources via a group, if they no longer belong t | STRING |
| HIGH | …sion_service/test_user_has_organisation_permissions.py | 0 | specific test to verify that a user no longer has permission to access resources via a group, if they no longer belong t | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 47 | Superuser "admin@example.com" created successfully. | CODE |
| LOW | frontend/README.md | 15 | Superuser "admin@example.com" created successfully. | CODE |
| LOW | …documentation/pages/onboarding/InlineInput.stories.tsx | 45 | render: () => <Controlled label='Organisation' initial='Acme Inc' />, | CODE |
| LOW | …entation/pages/onboarding/OnboardingHeader.stories.tsx | 9 | organisationName: 'Acme Inc', | CODE |
| LOW | …es/onboarding/hooks/__tests__/useSmartDefaults.test.ts | 7 | ${'alice@acme-corp.com'} | ${'Alice'} | ${'Acme Corp'} | CODE |
| LOW | frontend/common/utils/__tests__/format.test.ts | 114 | ${{ email: 'john@email.com', firstName: 'John', lastName: 'Doe' }} | ${'John Doe'} | CODE |
| LOW | …rating-with-flagsmith/sdks/client-side-sdks/android.md | 129 | flagsmith.setTrait(Trait(key = "set-from-client", value = "12345"), identity = "test@test.com") { result -> | CODE |
| LOW | …rating-with-flagsmith/sdks/client-side-sdks/android.md | 147 | flagsmith.getTraits(identity = "test@test.com") { result -> | CODE |
| LOW | …ocs/administration-and-security/access-control/scim.md | 161 | API supports filtering (e.g. `filter=userName eq "user@example.com"`) and pagination (`startIndex`, `count`) on list | CODE |
| LOW | api/app/settings/common.py | 536 | ADMIN_EMAIL = env("ADMIN_EMAIL", default="admin@example.com") | CODE |
| LOW⚡ | …/features/workflows/core/test_unit_workflows_models.py | 343 | user = django_user_model.objects.create(email="user@example.com") | CODE |
| LOW⚡ | …/features/workflows/core/test_unit_workflows_models.py | 362 | user = django_user_model.objects.create(email="user@example.com") | CODE |
| LOW | …ad_tracking/hubspot/test_unit_hubspot_lead_tracking.py | 310 | email="user@example.com", | CODE |
| LOW | …ad_tracking/hubspot/test_unit_hubspot_lead_tracking.py | 352 | email="user@example.com", | CODE |
| LOW | …ad_tracking/hubspot/test_unit_hubspot_lead_tracking.py | 427 | email="user@example.com", | CODE |
| LOW | …ch_darkly/example_api_responses/getFeatureFlags_2.json | 36 | "email": "test@test.com", | CODE |
| LOW | …ch_darkly/example_api_responses/getFeatureFlags_1.json | 36 | "email": "test@test.com", | CODE |
| LOW | …ch_darkly/example_api_responses/getFeatureFlags_1.json | 163 | "email": "test@test.com", | CODE |
| LOW | …ch_darkly/example_api_responses/getFeatureFlags_1.json | 290 | "email": "test@test.com", | CODE |
| LOW | …ch_darkly/example_api_responses/getFeatureFlags_1.json | 421 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 21 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 149 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 277 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 409 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 548 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 679 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 1005 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 1207 | "email": "test@test.com", | CODE |
| LOW | …grations/launch_darkly/client_responses/get_flags.json | 1433 | "email": "test@test.com", | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_views.py | 829 | settings.ORG_SUBSCRIPTION_CANCELLED_ALERT_RECIPIENT_LIST = ["foo@bar.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_views.py | 867 | settings.ORG_SUBSCRIPTION_CANCELLED_ALERT_RECIPIENT_LIST = ["foo@bar.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_views.py | 906 | settings.ORG_SUBSCRIPTION_CANCELLED_ALERT_RECIPIENT_LIST = ["foo@bar.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 273 | recipient = "foo@bar.com" | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 502 | assert email.to == ["admin@example.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 646 | assert email.to == ["admin@example.com", "staff@example.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 792 | assert email.to == ["admin@example.com", "staff@example.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 1787 | assert email2.to == ["admin@example.com", "staff@example.com"] | CODE |
| LOW | …ts/unit/organisations/test_unit_organisations_tasks.py | 1805 | assert email3.to == ["admin@example.com", "staff@example.com"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frontend/web/components/integrations/MCPIntegration.tsx | 132 | <InlineCode><your-api-key></InlineCode>. | CODE |
| HIGH | …ontend/web/components/integrations/mcp/mcpSnippets.tsx | 15 | export const API_KEY_PLACEHOLDER = '<your-api-key>' | CODE |
| HIGH | …nd-security/governance-and-compliance/custom-fields.md | 76 | -H "Authorization: Api-Key YOUR_API_KEY" | CODE |
| HIGH | …nd-security/governance-and-compliance/custom-fields.md | 105 | -H "Authorization: Api-Key YOUR_API_KEY" | CODE |
| HIGH | docs/docs/deployment-self-hosting/mcp-server.md | 76 | FLAGSMITH_API_TOKEN=<your-api-key> \ | CODE |
| HIGH | docs/docs/deployment-self-hosting/mcp-server.md | 94 | "FLAGSMITH_API_TOKEN": "<your-api-key>" | CODE |
| HIGH | docs/docs/deployment-self-hosting/mcp-server.md | 144 | Authorization: Api-Key <your-api-key> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | api/tests/conftest.py | 1440 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | api/tests/conftest.py | 1442 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | api/tests/conftest.py | 136 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | api/tests/conftest.py | 138 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | api/tests/conftest.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | api/tests/conftest.py | 167 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mcp/src/flagsmith_mcp/metrics.py | 43 | except Exception: | CODE |
| LOW | mcp/src/flagsmith_mcp/events.py | 49 | except Exception: | CODE |
| LOW | api/edge_api/management/commands/migrate_to_edge_v2.py | 23 | except Exception: # pragma: no cover | CODE |
| LOW | …mport_export/json_serializers_with_metadata_support.py | 35 | except Exception as exc: | CODE |
| LOW | api/core/redis_cluster.py | 134 | except Exception as e: | CODE |
| LOW | api/experimentation/services.py | 764 | except Exception: | CODE |
| LOW | api/experimentation/tasks.py | 98 | except Exception as exc: | CODE |
| LOW | api/experimentation/tasks.py | 133 | except Exception as exc: | CODE |
| LOW⚡ | api/features/import_export/tasks.py | 127 | except Exception: | CODE |
| LOW⚡ | api/features/import_export/tasks.py | 139 | except Exception: | CODE |
| LOW | api/segment_membership/tasks.py | 113 | except Exception: | CODE |
| LOW | api/segment_membership/tasks.py | 237 | except Exception: | CODE |
| LOW | api/integrations/launch_darkly/services.py | 90 | except Exception as exc: | CODE |
| LOW | api/integrations/launch_darkly/tasks.py | 32 | except Exception: | CODE |
| LOW | api/organisations/tasks.py | 151 | except Exception: | CODE |
| LOW | api/organisations/tasks.py | 277 | except Exception: | CODE |
| LOW | api/organisations/usage_reporting/services.py | 74 | except Exception: | CODE |
| LOW | api/telemetry/apps.py | 17 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/environments/identities/serializers.py | 89 | help_text="One of: null, 'SEGMENT', 'IDENTITY'." | CODE |
| HIGH | api/features/models.py | 550 | # identity is the highest priority so we can always return true | COMMENT |
| HIGH | …unit/environments/dynamodb/test_unit_dynamodb_utils.py | 58 | '{"outer":{"inner":"value","list":[1,2]},"flag":true,"empty":null}'.encode() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/edge_api/identities/export.py | 19 | CODE | |
| LOW | api/app_analytics/mappers.py | 65 | CODE | |
| LOW | api/features/models.py | 532 | CODE | |
| LOW | api/features/permissions.py | 89 | CODE | |
| LOW | api/features/features_service.py | 47 | CODE | |
| LOW | api/features/feature_health/services.py | 59 | CODE | |
| LOW | api/features/versioning/models.py | 327 | CODE | |
| LOW | api/segment_membership/tasks.py | 58 | CODE | |
| LOW | api/integrations/gitlab/mappers.py | 93 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 293 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 437 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 545 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 699 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 762 | CODE | |
| LOW | api/integrations/launch_darkly/services.py | 1106 | CODE | |
| LOW | api/organisations/views.py | 77 | CODE | |
| LOW | api/api/openapi.py | 289 | CODE | |
| LOW | api/webhooks/permissions.py | 8 | CODE | |
| LOW | api/metadata/serializers.py | 130 | CODE | |
| LOW | api/metadata/permissions.py | 11 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/web/components/modals/CreateSegment.tsx | 536 | // Need to fix this to be more robust and handle post save | COMMENT |
| LOW | api/edge_api/identities/export.py | 72 | # dynamo object, we just create a default object with a value of null. | COMMENT |
| LOW | api/core/models.py | 91 | # and fall back to just return an empty list. | COMMENT |
| LOW | api/app_analytics/influxdb_wrapper.py | 134 | # Influx throws an error for an empty range, so just return a list. | COMMENT |
| LOW | api/features/models.py | 834 | # the identity, then we just return the default feature state value (or None | COMMENT |
| MEDIUM | api/audit/tasks.py | 66 | # NOTE: This NEEDS to leverage btree indexes on AuditLog | COMMENT |
| LOW | api/users/serializers.py | 151 | # TODO: remove users from here and just add a summary of number of users | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/core/middleware/axes.py | 15 | CODE | |
| LOW | api/app_analytics/middleware.py | 24 | CODE | |
| LOW | api/app_analytics/middleware.py | 45 | CODE | |
| LOW | api/features/views.py | 423 | CODE | |
| LOW | api/features/views.py | 441 | CODE | |
| LOW | …sts/unit/integrations/github/test_unit_github_views.py | 488 | CODE | |
| LOW | …sts/unit/integrations/github/test_unit_github_views.py | 496 | CODE | |
| LOW | api/tests/unit/telemetry/helpers.py | 1 | CODE | |
| LOW | api/tests/integration/helpers.py | 83 | CODE | |
| LOW | api/integrations/webhook/webhook.py | 54 | CODE | |
| LOW | api/webhooks/webhooks.py | 336 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 21 | COMMENT | |
| LOW | frontend/web/styles/_primitives.scss | 1 | // ============================================================================= | COMMENT |
| LOW | frontend/web/styles/3rdParty/_bootstrap.scss | 81 | COMMENT | |
| LOW | …-settings/tabs/warehouse-tab/sendWarehouseTestEvent.ts | 1 | import { createFlagsmithInstance } from '@flagsmith/flagsmith/isomorphic' | COMMENT |
| LOW | …ts/pages/onboarding/OnboardingFlow/OnboardingFlow.scss | 1 | // Reading-column width for the onboarding flow - a focused, single-task flow | COMMENT |
| LOW | …pages/onboarding/OnboardingConnectPanel/sdkSnippets.ts | 1 | // Snippets for every SDK we support, sourced from the maintained | COMMENT |
| LOW | frontend/common/services/useMultivariateOption.ts | 21 | // No invalidatesTags: every save chain already ends with a broad | COMMENT |
| LOW | api/tests/unit/util/test_util.py | 141 | # Given an iterable whose length isn't a multiple of the batch size | COMMENT |
| LOW | …sions/permission_service/test_is_user_project_admin.py | 141 | # Should take only 4 queries: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/sse/sse_service.py | 70 | # Check if timeout has been reached before processing each file | COMMENT |
| LOW | api/app/settings/common.py | 1047 | # Set this to enable create organisation for only superusers | COMMENT |
| LOW | api/app/settings/common.py | 1352 | # Set this to add newly created users to an organisation | COMMENT |
| LOW | api/environments/identities/traits/views.py | 155 | # Check if trait value was provided with request data. If so, we need to figure out value_type from | COMMENT |
| LOW | api/features/views.py | 755 | # Check if feature state value was provided with request data. If so, create / update | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/common/services/useFeatureVersion.ts | 95 | // Step 1: Create a new feature version | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/app_analytics/constants.py | 18 | # We make sure to only track known SDK versions | COMMENT |