AI Slop Code RIsk Monitor

suitenumerique/docs

Docs is an open-source text editor: web-native, made for real-time collaboration, cleanly structured documents and sub-documents with full ownership of your data. Built to scale with Django and React.

12.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for suitenumerique/docs, a Python project with 16,910 GitHub stars. SynthScan examined 171,147 lines of code across 1001 source files, recording 1644 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 12.4 (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.

12.4
Adjusted Signal
12.4
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
16.9K
Stars
Python
Language
171.1K
Lines of Code
1.0K
Files
1.6K
Pattern Hits
2026-10-12
Scan Date
0.10
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 35.9/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 1484 finding(s).

Hallucinated Dependency & Supply Chain Risk 5.9/100 · LOW

Are imports declared and package/API names verified? 63 finding(s).

Agent Over-Engineering Ratio 38.5/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 1443 finding(s).

PR Review Velocity Impact 48.0/100 · MEDIUM

Which changes need focused human review? 1644 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 9HIGH 88MEDIUM 38LOW 1509

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1644 distinct pattern matches across 21 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.

Hyper-Verbose Identifiers1345 hits · 1278 pts
SeverityFileLineSnippetContext
LOWdocumentation/resource_server.md76 def create_document_from_markdown(self, request):CODE
LOW…press/src/features/auth/api/useUserReconciliations.tsx34export function useUserReconciliationsQuery(CODE
LOW…end/apps/impress/src/features/docs/doc-export/utils.ts23export function collectInterlinkingDocIds(blocks: unknown[]): string[] {CODE
LOW…end/apps/impress/src/features/docs/doc-export/utils.ts320export function odtRegisterParagraphStyleForBlock(CODE
LOW…ps/impress/src/features/docs/doc-export/utils_print.ts160function createPrintOnlyStyleElement() {CODE
LOW…features/docs/doc-export/blocks-mapping/headingPDF.tsx10function extractTextFromBlockContent(content: unknown[]): string {CODE
LOW…/src/features/docs/doc-share/api/useDocInvitations.tsx69export function useDocInvitationsInfinite(params: DocInvitationsParams) {CODE
LOW…rc/features/docs/doc-share/api/useDocAccessRequest.tsx54export function useCreateDocAccessRequest(CODE
LOWsrc/backend/demo/tests/test_commands_create_demo.py19def collaboration_server_fixture():CODE
LOWsrc/backend/demo/tests/test_commands_create_demo.py39def test_commands_create_demo(collaboration_server):CODE
LOWsrc/backend/demo/tests/test_commands_create_demo.py82def test_commands_create_demo_without_collaboration_server(collaboration_server):CODE
LOWsrc/backend/demo/management/commands/create_demo.py30def random_true_with_probability(probability):CODE
LOWsrc/backend/core/signals.py42def document_access_post_save(sender, instance, created, **kwargs): # pylint: disable=unused-argumentCODE
LOWsrc/backend/core/signals.py65def document_access_post_delete(sender, instance, **kwargs): # pylint: disable=unused-argumentCODE
LOWsrc/backend/core/models.py238 def _delete_user_shared_documents_accesses(self):CODE
LOWsrc/backend/core/models.py260 def _delete_documents_single_owner(self):CODE
LOWsrc/backend/core/models.py297 def _clear_user_created_documents(self):CODE
LOWsrc/backend/core/models.py305 def _handle_onboarding_documents_access(self):CODE
LOWsrc/backend/core/models.py340 def _duplicate_onboarding_sandbox_document(self):CODE
LOWsrc/backend/core/models.py391 def _convert_valid_invitations(self):CODE
LOWsrc/backend/core/models.py548 def process_reconciliation_request(self):CODE
LOWsrc/backend/core/models.py636 def prepare_documentaccess_reconciliation(self):CODE
LOWsrc/backend/core/models.py670 def prepare_document_favorite_reconciliation(self):CODE
LOWsrc/backend/core/models.py694 def prepare_linktrace_reconciliation(self):CODE
LOWsrc/backend/core/models.py714 def prepare_thread_reconciliation(self):CODE
LOWsrc/backend/core/models.py729 def prepare_comment_reconciliation(self):CODE
LOWsrc/backend/core/models.py744 def prepare_reaction_reconciliation(self):CODE
LOWsrc/backend/core/models.py756 def send_reconciliation_confirm_email(CODE
LOWsrc/backend/core/models.py781 def send_reconciliation_done_email(self, language=None):CODE
LOWsrc/backend/core/models.py859 def send_reconciliation_error_email(CODE
LOWsrc/backend/core/models.py965 def annotate_user_has_link_trace(self, user):CODE
LOWsrc/backend/core/models.py1099 def get_self_and_ancestors_paths(self):CODE
LOWsrc/backend/core/models.py1113 def get_nb_accesses_cache_key(self):CODE
LOWsrc/backend/core/models.py1200 def invalidate_nb_accesses_cache(self):CODE
LOWsrc/backend/core/models.py1238 def compute_ancestors_links_paths_mapping(self):CODE
LOWsrc/backend/core/models.py1264 def ancestors_link_definition(self):CODE
LOWsrc/backend/core/models.py1279 def ancestors_link_definition(self, definition):CODE
LOWsrc/backend/core/models.py1865 def send_ask_for_access_email(self, email, language=None):CODE
LOWsrc/backend/core/models.py2119 def is_notification_in_cooldown(self):CODE
LOWsrc/backend/core/malware_detection.py17def malware_detection_callback(file_path, status, error_info, **kwargs):CODE
LOWsrc/backend/core/choices.py90def get_equivalent_link_definition(ancestors_links):CODE
LOWsrc/backend/core/tasks/mail.py29def send_mention_notification_mail(mention_id):CODE
LOWsrc/backend/core/tasks/user_reconciliation.py84def user_reconciliation_csv_import_job(job_id):CODE
LOWsrc/backend/core/tasks/documents.py17def sync_service_restorations_in_cascade(document_id):CODE
LOWsrc/backend/core/tasks/access.py20def reset_service_connections_in_cascade(document_id, user_id=None, after_path=None):CODE
LOWsrc/backend/core/tasks/access.py121def reset_service_connections_on_commit(document_id, user_id=None):CODE
LOWsrc/backend/core/tasks/search.py31def batch_indexer_throttle_acquire(timeout: int = 0, atomic: bool = True):CODE
LOWsrc/backend/core/tasks/search.py51def batch_document_indexer_task(timestamp):CODE
LOWsrc/backend/core/tasks/search.py66def trigger_batch_document_indexer(document_id, updated_at):CODE
LOWsrc/backend/core/external_api/viewsets.py30 def _get_resource_server_actions(self, resource_name):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py33def test_api_utils_ai_user_rate_throttle_minute_limit(mock_time):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py69def test_ai_user_rate_throttle_hour_limit(mock_time):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py106def test_api_utils_ai_user_rate_throttle_day_limit(mock_time):CODE
LOW⚡src/backend/core/tests/test_models_document_accesses.py56def test_models_document_accesses_several_null_users():CODE
LOW⚡src/backend/core/tests/test_models_document_accesses.py62def test_models_document_accesses_user_and_team_set():CODE
LOW⚡src/backend/core/tests/test_models_document_accesses.py71def test_models_document_accesses_user_and_team_empty():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py15def test_models_document_accesses_str():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py28def test_models_document_accesses_unique_user():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py39def test_models_document_accesses_several_empty_teams():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py45def test_models_document_accesses_unique_team():CODE
1285 more matches not shown…
Cross-File Repetition69 hits · 345 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/core/tests/test_models_users.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…tests/documents/test_api_documents_create_for_owner.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…/tests/documents/test_api_documents_children_create.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…kend/core/tests/documents/test_api_documents_create.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…l_api/test_external_api_documents_attachment_upload.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…end/core/tests/external_api/test_external_api_users.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…_api/test_external_api_documents_link_configuration.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…core/tests/external_api/test_external_api_documents.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_accesses.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…external_api/test_external_api_documents_invitation.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_favorite.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…e/tests/external_api/test_external_api_documents_ai.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…external_api/test_external_api_documents_media_auth.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…tests/documents/test_api_documents_create_for_owner.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…kend/core/tests/documents/test_api_documents_create.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…/tests/documents/test_api_documents_children_create.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…ackend/core/tests/documents/test_api_documents_list.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…nd/core/tests/documents/test_api_documents_trashbin.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…ore/tests/documents/test_api_documents_list_filters.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve a document if they are related to one of its ancestors whatever the roSTRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be allowed to retrieve a document if they are related to one of its ancestors whatever the roSTRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be allowed to retrieve a document if they are related to one of its ancestors whatever the roSTRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0authenticated users should be allowed to retrieve a document if they are related to one of its ancestors whatever the roSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should not be allowed to retrieve a document as a result of being related to one of its children.STRING
9 more matches not shown…
Self-Referential Comments31 hits · 93 pts
SeverityFileLineSnippetContext
MEDIUM…files/docker-entrypoint-initdb.d/01_create_app_user.sh4# Create a non-superuser for the application to test migrations.COMMENT
MEDIUM.github/workflows/crowdin_download.yml68 # Create a new PRCOMMENT
MEDIUM…/backend/core/tests/test_models_user_reconciliation.py357 # Create a reconciliation entry where only one email has been checkedCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py163 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py204 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py243 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py282 # Create a fake Markdown fileCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py368 # Create a document the user should NOT have access toCOMMENT
MEDIUMsrc/backend/core/tests/commands/test_clean_document.py46 # Create a root document with subdocumentsCOMMENT
MEDIUMsrc/backend/core/tests/commands/test_clean_document.py313 # Create a root document with subdocumentsCOMMENT
MEDIUM…/core/tests/documents/test_api_document_invitations.py547 # Create a new invitation to the same document with the exact same email addressCOMMENT
MEDIUM…nd/core/tests/documents/test_api_documents_trashbin.py378 # Create a new user with no owner access to any documentCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py28 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py62 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py119 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py161 # Create a fake Markdown fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py221 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py270 # Create an empty fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py304 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py342 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py446 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py497 # Create a file with Unicode characters in the nameCOMMENT
MEDIUM…ests/documents/test_api_documents_formatted_content.py104 # Create an access as a reader. This should unlock the access.COMMENT
MEDIUM…backend/core/tests/documents/test_api_documents_all.py47 # Create a document tree: parent -> child -> grandchildCOMMENT
MEDIUM…backend/core/tests/documents/test_api_documents_all.py406 # Create a document treeCOMMENT
MEDIUM…d/core/tests/documents/test_api_documents_duplicate.py926 # Create a complex tree:COMMENT
MEDIUM…/tests/documents/test_api_documents_children_create.py336 # Create a fake DOCX fileCOMMENT
MEDIUM…/tests/documents/test_api_documents_children_create.py386 # Create a fake DOCX fileCOMMENT
MEDIUM…ests/documents/test_api_documents_attachment_upload.py293 # Create a temporary file larger than the allowed sizeCOMMENT
MEDIUM…ackend/core/tests/documents/test_api_documents_move.py495 # Create a hierarchy: parent -> child -> grandchildCOMMENT
MEDIUMsrc/backend/core/api/viewsets.py1115 # Create a child documentCOMMENT
Hallucination Indicators9 hits · 90 pts
SeverityFileLineSnippetContext
CRITICALsrc/backend/core/validators.py3from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tasks/user_reconciliation.py8from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_document_accesses.py6from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_documents.py14from django.core.exceptions import ValidationErrorCODE
CRITICAL…d/core/tests/test_utils_create_tree_node_with_retry.py5from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_users.py10from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/utils/treebeard.py7from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALsrc/backend/core/api/viewsets.py18from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/api/__init__.py4from django.core.exceptions import ValidationErrorCODE
Cross-Language Confusion15 hits · 72 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/demo/management/commands/create_demo.py222 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py258 queue.push(document)CODE
HIGHsrc/backend/demo/management/commands/create_demo.py275 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py284 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py307 queue.push(CODE
HIGHsrc/backend/core/models.py2121 (same document and thread, the document body when the thread is null) withinSTRING
HIGHsrc/backend/core/tests/test_services_search_indexers.py519 indexer.push(sample_data)CODE
HIGH…backend/core/management/commands/generate_volumetry.py291 self.docs_queue.push(CODE
HIGH…backend/core/management/commands/generate_volumetry.py309 self.docs_queue.push(worst_user)CODE
HIGH…backend/core/management/commands/generate_volumetry.py329 self.docs_queue.push(CODE
HIGH…backend/core/management/commands/generate_volumetry.py373 self.rel_queue.push(CODE
HIGH…backend/core/management/commands/generate_volumetry.py382 self.rel_queue.push(CODE
HIGH…backend/core/management/commands/generate_volumetry.py411 self.rel_queue.push(CODE
HIGH…backend/core/management/commands/generate_volumetry.py438 self.rel_queue.push(model(user_id=uid, document_id=doc_id))CODE
HIGHsrc/backend/core/services/search_indexers.py184 self.push(serialized_batch)CODE
Structural Annotation Overuse30 hits · 56 pts
SeverityFileLineSnippetContext
LOW⚡documentation/installation/scalingo.md34## Step 1: Create Your AppCOMMENT
LOW⚡documentation/installation/scalingo.md38## Step 2: Provision AddonsCOMMENT
LOW⚡documentation/installation/scalingo.md46## Step 3: Configure Environment VariablesCOMMENT
LOWdocumentation/installation/scalingo.md153## Step 4: DeployCOMMENT
LOWdocumentation/installation/scalingo.md169## Step 5: Create superuserCOMMENT
LOWdocumentation/installation/compose.md50## Step 1: Prepare your working environment:COMMENT
LOWdocumentation/installation/compose.md68## Step 2: ConfigurationCOMMENT
LOWdocumentation/installation/compose.md228## Step 3: Reverse proxy and SSL/TLSCOMMENT
LOWdocumentation/installation/compose.md257## Step 4: Create the schema of the collaboration serverCOMMENT
LOWdocumentation/installation/compose.md272## Step 5: Start DocsCOMMENT
LOWdocumentation/installation/compose.md282## Step 6: Run the database migration and create Django admin userCOMMENT
LOW⚡documentation/installation/compose.md301### Step 1: Edit the images tag with the desired versionCOMMENT
LOW⚡documentation/installation/compose.md303### Step 2: Pull the imagesCOMMENT
LOW⚡documentation/installation/compose.md309### Step 3: Restart your containersCOMMENT
LOW⚡documentation/installation/compose.md315### Step 4: Run the database migrationsCOMMENT
LOWdocumentation/examples/compose/minio/README.md8### Step 1: Prepare your working environment:COMMENT
LOWdocumentation/examples/compose/minio/README.md27### Step 3: Expose MinIO instanceCOMMENT
LOWdocumentation/examples/compose/minio/README.md71### Step 4: Start the serviceCOMMENT
LOWdocumentation/examples/compose/minio/README.md85### Step 1: Configure `mc` to connect to your MinIO Server with your root userCOMMENT
LOWdocumentation/examples/compose/minio/README.md93### Step 2: Create a new bucket with versioning enabledCOMMENT
LOW⚡documentation/examples/compose/nginx-proxy/README.md12### Step 1: Prepare your working environment:COMMENT
LOW⚡documentation/examples/compose/nginx-proxy/README.md19### Step 2: Edit `DEFAULT_EMAIL` in the compose file.COMMENT
LOW⚡documentation/examples/compose/nginx-proxy/README.md23### Step 3: Create docker networkCOMMENT
LOW⚡documentation/examples/compose/nginx-proxy/README.md31### Step 4: Start serviceCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md8### Step 1: Prepare your working environment:COMMENT
LOWdocumentation/examples/compose/keycloak/README.md27### Step 3: Expose keycloak instance on httpsCOMMENT
LOW⚡documentation/examples/compose/keycloak/README.md58### Step 4: Start the serviceCOMMENT
LOW⚡documentation/examples/compose/keycloak/README.md68### Step 1: Create a New RealmCOMMENT
LOW⚡documentation/examples/compose/keycloak/README.md75#### Step 2: Create a New ClientCOMMENT
LOW⚡documentation/examples/compose/keycloak/README.md85#### Step 3: Get Client CredentialsCOMMENT
Over-Commented Block56 hits · 53 pts
SeverityFileLineSnippetContext
LOWdocumentation/installation/compose.md241 ...COMMENT
LOWdocumentation/examples/compose/compose.yaml121COMMENT
LOWdocumentation/examples/compose/minio/compose.yaml21# networks:COMMENT
LOWdocumentation/examples/compose/keycloak/README.md41 # Uncomment and set your values if using our nginx proxy exampleCOMMENT
LOWdocumentation/examples/compose/keycloak/compose.yaml21 # environment:COMMENT
LOWdocumentation/assets/diagrams/render.sh1#!/usr/bin/env bashCOMMENT
LOWbin/generate-jwt-private-key.sh1#!/usr/bin/env bashCOMMENT
LOW…tures/docs/doc-presenter/components/PresenterSlide.tsx21 slide: PresenterSlideData;COMMENT
LOWsrc/yhub-server/src/migration.ts1// Migration off the legacy Django document store (see README.md).COMMENT
LOWsrc/yhub-server/src/migration.ts41// may sit on another provider with credentials of its own, and the backend'sCOMMENT
LOWsrc/yhub-server/src/migration.ts161// Both keys are derived from the prefix yhub itself resolved, so they cannotCOMMENT
LOWsrc/yhub-server/src/migration.ts581// 'ok' — history storedCOMMENT
LOWsrc/yhub-server/src/api.ts41// about the storage.COMMENT
LOWsrc/yhub-server/src/api.ts421 const authInfo = req.authInfo as AppAuthInfo | null;COMMENT
LOWsrc/yhub-server/src/config.ts41export const REDIS_PREFIX = process.env.REDIS_PREFIX || 'yhub';COMMENT
LOWsrc/yhub-server/src/config.ts81 throw new Error(COMMENT
LOWsrc/yhub-server/src/config.ts101// itself is loaded whenever the bucket below is configured, on or off, becauseCOMMENT
LOWsrc/yhub-server/src/config.ts121export const API_PREFIX = 'collaboration';COMMENT
LOWsrc/yhub-server/src/config.ts141// and S3 keys are case-sensitive strings — accepting case variants would let aCOMMENT
LOWsrc/yhub-server/src/config.ts161// `documents/{id}`, `accesses/me`) get the same bound by default: a backendCOMMENT
LOWsrc/yhub-server/src/server.ts81 ? (err as { code: string }).codeCOMMENT
LOWsrc/yhub-server/src/server.ts181 // a valid token that is not an admin one is a credential we refuse, notCOMMENT
LOWsrc/yhub-server/src/server.ts361 },COMMENT
LOWsrc/yhub-server/src/server.ts421 port: Number(url.port),COMMENT
LOWsrc/yhub-server/src/server.ts461 },COMMENT
LOWsrc/backend/core/models.py1321COMMENT
LOWsrc/backend/core/api/viewsets.py2101COMMENT
LOWsrc/backend/impress/settings.py1221 ),COMMENT
LOWsrc/backend/impress/settings.py1281 # from the environment — no variable can enable it on another configuration —COMMENT
LOWsrc/backend/impress/settings.py1661 SECURE_BROWSER_XSS_FILTER = TrueCOMMENT
LOWsrc/helm/impress/values.yaml1# Default values for impress.COMMENT
LOWsrc/helm/impress/values.yaml61 path: /collaboration/ws/COMMENT
LOWsrc/helm/impress/values.yaml81 ##COMMENT
LOWsrc/helm/impress/values.yaml121 ## The routes yhub serves to browsers, guarded by the same documentCOMMENT
LOWsrc/helm/impress/values.yaml161COMMENT
LOWsrc/helm/impress/values.yaml201 ## @param ingressMetrics.tls.secretName Secret name for TLS configCOMMENT
LOWsrc/helm/impress/values.yaml221## of the component, read from the Secret its PROMETHEUS_API_KEY comes fromCOMMENT
LOWsrc/helm/impress/values.yaml361 ## @skip backend.envFrom List of environment variables taken from Secrets or configMaps, common to backend and celery COMMENT
LOWsrc/helm/impress/values.yaml461COMMENT
LOWsrc/helm/impress/values.yaml521 ## @param backend.serviceAccountName Optional service account name to use for backend podsCOMMENT
LOWsrc/helm/impress/values.yaml621 type: RuntimeDefaultCOMMENT
LOWsrc/helm/impress/values.yaml661 ## @extra frontend.probes.liveness.initialDelaySeconds Configure timeout for frontend liveness probeCOMMENT
LOWsrc/helm/impress/values.yaml821 type: RuntimeDefaultCOMMENT
LOWsrc/helm/impress/values.yaml861 ## @extra yProvider.probes.startup.path Configure path for yProvider HTTP startup probeCOMMENT
LOWsrc/helm/impress/values.yaml901COMMENT
LOWsrc/helm/impress/values.yaml941COMMENT
LOWsrc/helm/impress/values.yaml961 ## @param jwtKeys.kubectlImage.tag Tag of the image handing the keys to the secretCOMMENT
LOWsrc/helm/impress/values.yaml981 ## @param jwtKeys.job.backoffLimit Numbers of generating job retriesCOMMENT
LOWsrc/helm/impress/values.yaml1021## @section yhubCOMMENT
LOWsrc/helm/impress/values.yaml1061 ## @param yhub.args Override the yhub container argsCOMMENT
LOWsrc/helm/impress/values.yaml1081 apiKeySecret:COMMENT
LOWsrc/helm/impress/values.yaml1101 ## difference between them — so the server scales with the connected editorsCOMMENT
LOWsrc/helm/impress/values.yaml1161 ## Append `?sslmode=require` (or `verify-full`) when the server only accepts TLS, which is the default of the ZalandCOMMENT
LOWsrc/helm/impress/values.yaml1181 ## @extra yhub.envVars.YHUB_S3_BUCKET_NAME Required by YHUB_S3_PERSISTENCE, name of that bucket, created on startup whCOMMENT
LOWsrc/helm/impress/values.yaml1241 targetPort: 3002COMMENT
LOWsrc/helm/impress/templates/jwt_keys_job.yaml1{{- if and .Values.jwtKeys.enabled (not .Values.jwtKeys.existingSecret) -}}COMMENT
Fake / Example Data35 hits · 43 pts
SeverityFileLineSnippetContext
LOW…press/src/features/service-worker/plugins/ApiPlugin.ts239 creator: 'dummy-id',CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-header.spec.ts57 const editor = await writeInEditor({ page, text: 'Lorem ipsum' });CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-header.spec.ts61 await writeInEditor({ page, text: 'Lorem ipsum 2' });CODE
LOW…ontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts40 full_name: 'John Doe',CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-import.spec.ts59 name: 'Lorem Ipsum import Document',CODE
LOW⚡…d/apps/e2e/__tests__/app-impress/assets/test_import.md3# Lorem Ipsum import DocumentCOMMENT
LOW⚡…d/apps/e2e/__tests__/app-impress/assets/test_import.md7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW⚡…d/apps/e2e/__tests__/app-impress/assets/test_import.md7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW⚡…d/apps/e2e/__tests__/app-impress/assets/test_import.md11* **Bold text**: Lorem ipsum dolor sit amet.COMMENT
LOW⚡…d/apps/e2e/__tests__/app-impress/assets/test_import.md11* **Bold text**: Lorem ipsum dolor sit amet.COMMENT
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md39> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt.CODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md39> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt.CODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md60Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md60Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW⚡…/frontend/servers/y-provider/__tests__/convert.test.ts29const expectedMarkdown = '# Example document\n\nLorem ipsum dolor sit amet.';CODE
LOW⚡…/frontend/servers/y-provider/__tests__/convert.test.ts29const expectedMarkdown = '# Example document\n\nLorem ipsum dolor sit amet.';CODE
LOW⚡…/frontend/servers/y-provider/__tests__/convert.test.ts31 '<h1>Example document</h1><p>Lorem ipsum dolor sit amet.</p>';CODE
LOW⚡…/frontend/servers/y-provider/__tests__/convert.test.ts31 '<h1>Example document</h1><p>Lorem ipsum dolor sit amet.</p>';CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts57 text: 'Lorem ipsum dolor sit amet.',CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts57 text: 'Lorem ipsum dolor sit amet.',CODE
LOW…kend/core/tests/test_services_find_document_indexer.py480 token = "fake-token"CODE
LOW⚡src/backend/core/tests/test_api_users.py390 factories.UserFactory(email="john.doe@example.com", full_name="John Doe")CODE
LOWsrc/backend/core/tests/test_api_users.py51 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py86 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py126 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py171 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py281 user = factories.UserFactory(email="user@example.com")CODE
LOWsrc/backend/core/tests/test_api_users.py419 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOW⚡…d/core/tests/serializers/test_user_light_serializer.py14 email="test@test.com",CODE
LOW⚡…d/core/tests/serializers/test_user_light_serializer.py15 full_name="John Doe",CODE
LOW⚡…d/core/tests/serializers/test_user_light_serializer.py20 assert serializer.data["full_name"] == "John Doe"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py225 user = UserFactory(full_name="John Doe", short_name="John")CODE
LOWsrc/backend/core/tests/authentication/test_backends.py264 full_name="John Doe", short_name="John", email="john.doe@example.com"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py306 full_name="John Doe", short_name="John", email="john.doe@example.com"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py377 assert user.full_name == "John Doe"CODE
Modern Structural Boilerplate13 hits · 14 pts
SeverityFileLineSnippetContext
LOWsrc/backend/conftest.py41logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/metrics.py32logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/malware_detection.py13logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/tasks/user_reconciliation.py18logger = logging.getLogger(__name__)CODE
LOW⚡src/backend/core/utils/users.py12logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/utils/treebeard.py10logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/api/viewsets.py96logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/authentication/backends.py20logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/yhub_services.py41logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/search_indexers.py22logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/jwt_services.py18logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/converter_services.py14logger = logging.getLogger(__name__)CODE
LOWsrc/backend/impress/__init__.py5__all__ = ["celery_app"]CODE
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWsrc/backend/core/models.py2250 # Check if an identity already exists for the provided emailCOMMENT
LOWsrc/backend/core/external_api/permissions.py29 # Check if the user is authenticatedCOMMENT
LOW…ackend/core/tests/documents/test_api_documents_list.py424 # Check if the "is_favorite" annotation is correctly set for the favorited documentsCOMMENT
LOWsrc/backend/core/api/viewsets.py2144 # Check if the attachment is ready. Use the process-global S3 clientCOMMENT
LOWsrc/backend/core/api/viewsets.py2189 # Check if the attachment is readyCOMMENT
LOWsrc/backend/core/api/throttling.py46 # Check if this is a valid y-provider request and exempt from throttlingCOMMENT
LOWsrc/backend/core/api/permissions.py83 # Check if resource_id is passed in the contextCOMMENT
LOWsrc/backend/core/api/permissions.py91 # Check if the user has access to manage invitations (Owner/Admin roles)COMMENT
Excessive Try-Catch Wrapping10 hits · 11 pts
SeverityFileLineSnippetContext
LOWsrc/backend/conftest.py113 except Exception: # pylint: disable=broad-exceptCODE
LOWsrc/backend/conftest.py158 except Exception: # pylint: disable=broad-exceptCODE
LOWsrc/backend/core/metrics.py121 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWsrc/backend/core/metrics.py222 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWsrc/backend/core/management/commands/index.py44 except Exception as err:CODE
LOW…agement/commands/update_files_content_type_metadata.py83 except Exception as exc: # noqaCODE
LOWsrc/backend/core/api/viewsets.py1608 except Exception:CODE
LOWsrc/backend/core/api/serializers.py306 except Exception:CODE
LOWsrc/backend/core/services/ai_services/blocknote.py74 except Exception as exc: # pylint: disable=broad-except #noqa: BLE001CODE
MEDIUMsrc/backend/core/services/ai_services/blocknote.py70def run_async_gen():CODE
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/core/api/permissions.py135except KeyError:CODE
HIGHsrc/backend/core/services/jwt_services.py162except KeyError:CODE
Modern AI Meta-Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…nd/core/tests/test_services_converter_orchestration.py31 # Verify the orchestrationCOMMENT
MEDIUMsrc/backend/impress/settings.py1021 # Y provider microserviceCOMMENT
MEDIUMsrc/backend/impress/settings.py1031 # DocSpec API microserviceCOMMENT
Deep Nesting7 hits · 6 pts
SeverityFileLineSnippetContext
LOW…core/tests/external_api/test_external_api_documents.py326CODE
LOW…/core/tests/documents/test_api_document_accesses_me.py351CODE
LOW…agement/commands/update_files_content_type_metadata.py19CODE
LOWsrc/backend/core/api/viewsets.py1391CODE
LOWsrc/backend/core/api/viewsets.py2374CODE
LOWsrc/backend/core/api/__init__.py12CODE
LOWsrc/backend/core/services/ai_services/blocknote.py134CODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…kend/core/tests/documents/test_api_documents_update.py343# =============================================================================COMMENT
MEDIUM…kend/core/tests/documents/test_api_documents_update.py345# =============================================================================COMMENT
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHCONTRIBUTING.md170Remember that for your contributions to go through the CI, your commits have to be signed off with `git commit --signofCODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/core/api/viewsets.py447 DocumentViewSet API. This view set provides CRUD operations and additional actions for managing documents. STRING
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWgitlint/gitlint_emoji.py5CODE
LOWsrc/backend/core/apps.py20CODE
LOW…e/tests/external_api/test_external_api_documents_ai.py18CODE
LOWsrc/backend/impress/__init__.py3CODE
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMsrc/backend/core/tests/test_services_ai_services.py274CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…apps/impress/src/features/help/components/HelpMenu.tsx44 * The onboarding can be disable, so we need to check if it's enabled before displaying the help menu.COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/loadtest/dashboards/generate.py12CODE