🔥🔥🔥 Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.
This report summarizes scanner evidence for makeplane/plane, a TypeScript project with 60,644 GitHub stars. SynthScan examined 544,240 lines of code across 4337 source files, recording 3799 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 9.3 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1213 finding(s).
Are imports declared and package/API names verified? 2328 finding(s).
Are wrappers, guards, and repeated structures necessary? 1104 finding(s).
Which changes need focused human review? 3799 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3799 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ages/blocks/src/emoji-icon-picker/search-a11y.test.tsx | 21 | expect(search.getAttribute("placeholder")).toBe("Search"); | CODE |
| LOW | packages/utils/src/validation.ts | 128 | * validateCompanyName("Acme Corp") // returns true | COMMENT |
| LOW | packages/utils/src/validation.ts | 162 | * validateWorkspaceName("Acme Corp") // returns true | COMMENT |
| LOW | packages/utils/src/string.ts | 86 | * getFirstCharacters("John Doe") // returns "JD" | COMMENT |
| LOW | packages/utils/src/string.ts | 105 | * getAvatarName("Jane Doe") // "Jane Doe" | COMMENT |
| LOW | packages/utils/src/common.ts | 27 | "placeholder", | CODE |
| LOW | packages/utils/src/editor/common.ts | 87 | PLACEHOLDER = "placeholder", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 8 | "placeholder": "Tanıdık ve tanınabilir bir şey her zaman iyidir." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 12 | "placeholder": "URL yazın veya yapıştırın", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 17 | "placeholder": "Bir aralık seçin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 27 | "placeholder": "Tip seçin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 71 | "placeholder": "Sayı ekle" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 93 | "placeholder": "Seçenek ekle", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 103 | "placeholder": { | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 163 | "placeholder": "Başlık" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 166 | "placeholder": "Açıklama" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 191 | "placeholder": "Formülü yazın", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 332 | "placeholder": "Bu iş öğesi tipine benzersiz bir isim verin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 335 | "placeholder": "Bu iş öğesi tipinin ne için olduğunu ve ne zaman kullanılacağını açıklayın." | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 448 | "placeholder": "onayla" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/settings.json | 14 | "placeholder": "E-postanızı girin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/settings.json | 24 | "placeholder": "123456", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 45 | "placeholder": "Proje şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 52 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 56 | "placeholder": "Projenizi adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 63 | "placeholder": "Bu projenin amacını ve hedeflerini açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 73 | "placeholder": "İş-öğesi şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 80 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 84 | "placeholder": "Bu iş öğesine bir başlık verin.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 91 | "placeholder": "Bu iş öğesini, tamamladığınızda ne başaracağınız açık olacak şekilde açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 101 | "placeholder": "Sayfa şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 108 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 112 | "placeholder": "Başlıksız sayfa", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 128 | "placeholder": "Şablonunuzu adlandırın", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 136 | "placeholder": "Bu şablon, aynı anda birden fazla projeyi yöneten Proje Yöneticileri için mükemmeldir.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 143 | "placeholder": "Konuşma-Metin entegrasyonumuzla üretkenliği artırın ve iletişimi kolaylaştırın.\n• Gerçek za | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 150 | "placeholder": "En uygun olduğunu düşündüğünüz yeri seçin. Birden fazla seçim yapabilirsiniz.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 157 | "placeholder": "Kullanıcılarınızın bu şablonu ararken arayacağını düşündüğünüz terimleri kullanın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 165 | "placeholder": "https://plane.so", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 173 | "placeholder": "Plane", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 181 | "placeholder": "help@plane.so", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 189 | "placeholder": "https://planes.so/privacy-policy", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 197 | "placeholder": "https://planes.so/terms-of-use", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 264 | "placeholder": "Benzersiz bir ad ekleyin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 272 | "placeholder": "Kısa bir açıklama ekleyin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 450 | "placeholder": "Başlık", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 414 | "placeholder": "URL yazın veya yapıştırın" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 418 | "placeholder": "Bu bağlantıyı nasıl görmek istersiniz" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 600 | "placeholder": "Aramak için yazın", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/editor.json | 33 | "placeholder": { | CODE |
| LOW | packages/i18n/src/locales/tr-TR/editor.json | 47 | "placeholder": "Bu bloğun içeriğini açıklayın", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/editor.json | 51 | "placeholder": "Blok türü seçin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/workspace-settings.json | 61 | "placeholder": "isim@firma.com", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/workspace-settings.json | 218 | "placeholder": "Gruplar" | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 239 | "placeholder": "IdP grup adlarını girin" | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 244 | "placeholder": "Proje seçin" | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 249 | "placeholder": "Proje rolü seçin" | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 321 | "placeholder": "Pazar yeri için uzun bir açıklama yazın. Komutlar için '/' tuşuna basın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 330 | "placeholder": "https://example.com" | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace-settings.json | 340 | "placeholder": "https://example.com/setup" | CODE |
| 1455 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/blocks/src/auth/password/indicator.tsx | 19 | export function PasswordStrengthIndicator({ | CODE |
| LOW | packages/blocks/src/utils/placement.ts | 58 | export function convertPlacementToSideAndAlign(placement: Placement): { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/dashboard.tsx | 13 | export function DashboardVerticalStackIllustration({ className }: DashboardVerticalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/milestone.tsx | 13 | export function MilestoneVerticalStackIllustration({ className }: MilestoneVerticalStackIllustrationProps) { | CODE |
| LOW | …/blocks/src/empty-state/assets/vertical-stack/epic.tsx | 13 | export function EpicVerticalStackIllustration({ className }: EpicVerticalStackIllustrationProps) { | CODE |
| LOW | …blocks/src/empty-state/assets/vertical-stack/inbox.tsx | 13 | export function InboxVerticalStackIllustration({ className }: InboxVerticalStackIllustrationProps) { | CODE |
| LOW | …src/empty-state/assets/vertical-stack/invalid-link.tsx | 13 | export function InvalidLinkVerticalStackIllustration({ className }: InvalidLinkVerticalStackIllustrationProps) { | CODE |
| LOW | …/blocks/src/empty-state/assets/vertical-stack/view.tsx | 13 | export function ViewVerticalStackIllustration({ className }: ViewVerticalStackIllustrationProps) { | CODE |
| LOW | …c/empty-state/assets/vertical-stack/archived-cycle.tsx | 13 | export function ArchivedCycleVerticalStackIllustration({ className }: ArchivedCycleVerticalStackIllustrationProps) { | CODE |
| LOW | …ocks/src/empty-state/assets/vertical-stack/project.tsx | 13 | export function ProjectVerticalStackIllustration({ className }: ProjectVerticalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/vertical-stack/customer.tsx | 13 | export function CustomerVerticalStackIllustration({ className }: CustomerVerticalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/no-access.tsx | 13 | export function NoAccessVerticalStackIllustration({ className }: NoAccessVerticalStackIllustrationProps) { | CODE |
| LOW | …locks/src/empty-state/assets/vertical-stack/module.tsx | 13 | export function ModuleVerticalStackIllustration({ className }: ModuleVerticalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/vertical-stack/property.tsx | 13 | export function PropertyVerticalStackIllustration({ className }: PropertyVerticalStackIllustrationProps) { | CODE |
| LOW | …/empty-state/assets/vertical-stack/archived-module.tsx | 13 | export function ArchivedModuleVerticalStackIllustration({ className }: ArchivedModuleVerticalStackIllustrationProps) { | CODE |
| LOW | …src/empty-state/assets/vertical-stack/server-error.tsx | 13 | export function ServerErrorVerticalStackIllustration({ className }: ServerErrorVerticalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/vertical-stack/stickies.tsx | 13 | export function StickiesVerticalStackIllustration({ className }: StickiesVerticalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/vertical-stack/workflow.tsx | 13 | export function WorkflowVerticalStackIllustration({ className }: WorkflowVerticalStackIllustrationProps) { | CODE |
| LOW | …blocks/src/empty-state/assets/vertical-stack/draft.tsx | 13 | export function DraftVerticalStackIllustration({ className }: DraftVerticalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/vertical-stack/initiative.tsx | 13 | export function InitiativeVerticalStackIllustration({ className }: InitiativeVerticalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/changelog.tsx | 13 | export function ChangelogVerticalStackIllustration({ className, ...rest }: ChangelogVerticalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/teamspace.tsx | 13 | export function TeamspaceVerticalStackIllustration({ className }: TeamspaceVerticalStackIllustrationProps) { | CODE |
| LOW | …pty-state/assets/vertical-stack/archived-work-item.tsx | 13 | export function ArchivedWorkItemVerticalStackIllustration({ | CODE |
| LOW | …/blocks/src/empty-state/assets/vertical-stack/page.tsx | 13 | export function PageVerticalStackIllustration({ className }: PageVerticalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/vertical-stack/work-item.tsx | 13 | export function WorkItemVerticalStackIllustration({ className }: WorkItemVerticalStackIllustrationProps) { | CODE |
| LOW | …blocks/src/empty-state/assets/vertical-stack/cycle.tsx | 13 | export function CycleVerticalStackIllustration({ className }: CycleVerticalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/settings.tsx | 13 | export function SettingsHorizontalStackIllustration({ className }: SettingsHorizontalStackIllustrationProps) { | CODE |
| LOW | …ocks/src/empty-state/assets/horizontal-stack/token.tsx | 13 | export function TokenHorizontalStackIllustration({ className }: TokenHorizontalStackIllustrationProps) { | CODE |
| LOW | …locks/src/empty-state/assets/horizontal-stack/note.tsx | 13 | export function NoteHorizontalStackIllustration({ className }: NoteHorizontalStackIllustrationProps) { | CODE |
| LOW | …locks/src/empty-state/assets/horizontal-stack/link.tsx | 13 | export function LinkHorizontalStackIllustration({ className }: LinkHorizontalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/priority.tsx | 13 | export function PriorityHorizontalStackIllustration({ className }: PriorityHorizontalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/update.tsx | 13 | export function UpdateHorizontalStackIllustration({ className }: UpdateHorizontalStackIllustrationProps) { | CODE |
| LOW | …empty-state/assets/horizontal-stack/runner-scripts.tsx | 13 | export function RunnerScriptsHorizontalStackIllustration({ className }: RunnerScriptsHorizontalStackIllustrationProps) { | CODE |
| LOW | …c/empty-state/assets/horizontal-stack/state-square.tsx | 13 | export function StateSquareHorizontalStackIllustration({ className }: StateSquareHorizontalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/estimate.tsx | 13 | export function EstimateHorizontalStackIllustration({ className }: EstimateHorizontalStackIllustrationProps) { | CODE |
| LOW | …/src/empty-state/assets/horizontal-stack/ai-agents.tsx | 13 | export function AiAgentsHorizontalStackIllustration({ className }: AiAgentsHorizontalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/horizontal-stack/worklog.tsx | 13 | export function WorklogHorizontalStackIllustration({ className }: WorklogHorizontalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/search.tsx | 13 | export function SearchHorizontalStackIllustration({ className }: SearchHorizontalStackIllustrationProps) { | CODE |
| LOW | …locks/src/empty-state/assets/horizontal-stack/epic.tsx | 13 | export function EpicHorizontalStackIllustration({ className }: EpicHorizontalStackIllustrationProps) { | CODE |
| LOW | …/empty-state/assets/horizontal-stack/group-syncing.tsx | 13 | export function GroupSyncingHorizontalStackIllustration({ className }: GroupSyncingHorizontalStackIllustrationProps) { | CODE |
| LOW | …ocks/src/empty-state/assets/horizontal-stack/label.tsx | 13 | export function LabelHorizontalStackIllustration({ className }: LabelHorizontalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/horizontal-stack/members.tsx | 13 | export function MembersHorizontalStackIllustration({ className }: MembersHorizontalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/export.tsx | 13 | export function ExportHorizontalStackIllustration({ className }: ExportHorizontalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/horizontal-stack/unknown.tsx | 13 | export function UnknownHorizontalStackIllustration({ className }: UnknownHorizontalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/horizontal-stack/project.tsx | 13 | export function ProjectHorizontalStackIllustration({ className }: ProjectHorizontalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/customer.tsx | 13 | export function CustomerHorizontalStackIllustration({ className }: CustomerHorizontalStackIllustrationProps) { | CODE |
| LOW | …ocks/src/empty-state/assets/horizontal-stack/state.tsx | 13 | export function StateHorizontalStackIllustration({ className }: StateHorizontalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/script.tsx | 13 | export function ScriptHorizontalStackIllustration({ className }: ScriptHorizontalStackIllustrationProps) { | CODE |
| LOW | …ks/src/empty-state/assets/horizontal-stack/webhook.tsx | 13 | export function WebhookHorizontalStackIllustration({ className }: WebhookHorizontalStackIllustrationProps) { | CODE |
| LOW | …pty-state/assets/horizontal-stack/runner-functions.tsx | 13 | export function RunnerFunctionsHorizontalStackIllustration({ | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/workflow.tsx | 13 | export function WorkflowHorizontalStackIllustration({ className }: WorkflowHorizontalStackIllustrationProps) { | CODE |
| LOW | …/src/empty-state/assets/horizontal-stack/ai-skills.tsx | 13 | export function AiSkillsHorizontalStackIllustration({ className }: AiSkillsHorizontalStackIllustrationProps) { | CODE |
| LOW | …locks/src/empty-state/assets/horizontal-stack/page.tsx | 13 | export function PageHorizontalStackIllustration({ className }: PageHorizontalStackIllustrationProps) { | CODE |
| LOW | …/src/empty-state/assets/horizontal-stack/work-item.tsx | 13 | export function WorkItemHorizontalStackIllustration({ className }: WorkItemHorizontalStackIllustrationProps) { | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/intake.tsx | 13 | export function IntakeHorizontalStackIllustration({ className }: IntakeHorizontalStackIllustrationProps) { | CODE |
| LOW | …ty-state/assets/horizontal-stack/custom-properties.tsx | 13 | export function CustomPropertiesHorizontalStackIllustration({ | CODE |
| LOW | …cks/src/empty-state/assets/horizontal-stack/memory.tsx | 13 | export function MemoryHorizontalStackIllustration({ className }: MemoryHorizontalStackIllustrationProps) { | CODE |
| LOW | …s/src/empty-state/assets/horizontal-stack/template.tsx | 13 | export function TemplateHorizontalStackIllustration({ className }: TemplateHorizontalStackIllustrationProps) { | CODE |
| LOW | packages/blocks/src/select/utils.ts | 201 | export function getTriggerChromeClassName(split: SplitSelectVariantResult, isActive: boolean): string { | CODE |
| LOW | packages/blocks/src/select/dropdown-placement.tsx | 19 | export function useSelectDropdownPlacement(): SelectDropdownPlacement | null { | CODE |
| 783 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/settings/local.py | 9 | CODE | |
| LOW | apps/api/plane/settings/test.py | 7 | CODE | |
| LOW | apps/api/plane/settings/common.py | 566 | CODE | |
| LOW | apps/api/plane/settings/production.py | 9 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 21 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 21 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 22 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 48 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 48 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 49 | CODE | |
| 712 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/editor/src/extensions/code/code-block.ts | 295 | const codeMark = view.state.schema.marks.code.create(); | CODE |
| CRITICAL | apps/web/store/issue/project/issue.store.ts | 86 | projectId && this.rootIssueStore.rootStore.projectRoot.project.fetchProjectDetails(workspaceSlug, projectId); | CODE |
| CRITICAL | apps/web/store/issue/issue-details/issue.store.ts | 137 | this.rootIssueDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); | CODE |
| CRITICAL | apps/web/store/issue/issue-details/sub_issues.store.ts | 240 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(oldIssue.state_id); | CODE |
| CRITICAL | apps/web/store/issue/issue-details/sub_issues.store.ts | 245 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issueData.state_id); | CODE |
| CRITICAL | apps/web/store/issue/issue-details/sub_issues.store.ts | 277 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issue.state_id); | CODE |
| CRITICAL | apps/web/store/issue/issue-details/sub_issues.store.ts | 310 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issue.state_id); | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 341 | this.rootIssueDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 343 | this.rootIssueDetailStore.rootIssueStore.rootStore.memberRoot.project.fetchProjectMembers( | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 348 | this.rootIssueDetailStore.rootIssueStore.rootStore.label.fetchProjectLabels(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 350 | this.rootIssueDetailStore.rootIssueStore.rootStore.cycle.fetchAllCycles(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 352 | this.rootIssueDetailStore.rootIssueStore.rootStore.module.fetchModules(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | apps/web/store/issue/issue-details/sub_issues.store.ts | 354 | this.rootIssueDetailStore.rootIssueStore.rootStore.projectEstimate.getProjectEstimates( | CODE |
| CRITICAL | …b/store/issue/issue-details/sub_issues_filter.store.ts | 127 | const workItems = this.subIssueStore.rootIssueDetailStore.rootIssueStore.issues.getIssuesByIds( | CODE |
| CRITICAL | apps/web/store/issue/archived/issue.store.ts | 80 | projectId && this.rootIssueStore.rootStore.projectRoot.project.fetchProjectDetails(workspaceSlug, projectId); | CODE |
| CRITICAL | apps/api/plane/app/serializers/module.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/serializers/workspace.py | 39 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/serializers/issue.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/views/workspace/invite.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/views/project/invite.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/license/api/views/admin.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ps/api/plane/tests/contract/app/test_authentication.py | 13 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/asset.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/webhook.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/workspace.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/issue.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/api/serializers/invite.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/api/serializers/issue.py | 42 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/adapter/base.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/app/check.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/plane/authentication/views/app/password_management.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/app/email.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/space/check.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …lane/authentication/views/space/password_management.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/space/email.py | 6 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/bin/docker-entrypoint-api-local.sh | 7 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api-local.sh | 28 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api.sh | 7 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api.sh | 29 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/plane/settings/storage.py | 45 | # Create an S3 client for MinIO | COMMENT |
| MEDIUM | apps/api/plane/settings/storage.py | 55 | # Create an S3 client | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/page.py | 72 | # Create the page | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/page.py | 82 | # Create the project page | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/base.py | 123 | # Create a list to store allowed fields. | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 148 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 392 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 621 | # Create a File Asset | COMMENT |
| MEDIUM⚡ | apps/api/plane/app/views/workspace/invite.py | 197 | # Create a Workspace | COMMENT |
| MEDIUM | apps/api/plane/app/views/intake/base.py | 279 | # Create an Issue Activity | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/invite.py | 263 | # Create a Project Member | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 65 | # Create a dictionary of the member_id and their roles | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 114 | # Create a new project member | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 123 | # Create a new issue property | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/base.py | 299 | # Create the model activity | COMMENT |
| MEDIUM | apps/api/plane/app/views/issue/attachment.py | 120 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/analytic/project_analytics.py | 234 | # Create a dictionary of existing stats with summed counts | COMMENT |
| MEDIUM | apps/api/plane/license/bgtasks/telemetry_metrics.py | 105 | # Create a new MeterProvider per execution. Gauges use callbacks that capture | COMMENT |
| MEDIUM | apps/api/plane/license/api/views/admin.py | 49 | # Create an instance admin | COMMENT |
| MEDIUM⚡ | apps/api/plane/bgtasks/storage_metadata_task.py | 19 | # Create an instance of the S3 storage | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 32 | # Create a version if description_html is updated | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 59 | # Create a new page version | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/workspace_seed_task.py | 522 | # Create a bot user for creating all the workspace data | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/workspace_seed_task.py | 543 | # Create a project with the same name as workspace | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/email_notification_task.py | 51 | # Create the below format for each of the issues | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/webhook_task.py | 219 | # Create the email message | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/dummy_data_task.py | 503 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/conftest.py | 131 | # Create the workspace using the model | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/middleware/test_db_routing.py | 400 | # Create a view class that raises AttributeError on access | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/middleware/test_db_routing.py | 243 | # Create a real object to avoid Mock issues | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/middleware/test_db_routing.py | 291 | # Create a real object to test the attribute handling | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/utils/test_url.py | 88 | # Create a string over 1000 characters with a URL | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/utils/test_uuid.py | 30 | # Create a known UUID | COMMENT |
| MEDIUM | …ps/api/plane/tests/unit/models/test_workspace_model.py | 18 | # Create a workspace | COMMENT |
| MEDIUM⚡ | …ps/api/plane/tests/unit/models/test_workspace_model.py | 32 | # Create a workspace | COMMENT |
| MEDIUM⚡ | …ps/api/plane/tests/unit/models/test_workspace_model.py | 37 | # Create a workspace member | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 43 | # Create a user to be the owner | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 46 | # Create a workspace with explicit ID to test serialization | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 64 | # Create a user to be the owner | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 67 | # Create a workspace | COMMENT |
| MEDIUM | …ps/api/plane/tests/contract/app/test_authentication.py | 372 | # Create a user that already exists | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 291 | # Create a project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 346 | # Create an archived project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 403 | # Create a project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 406 | # Create a member user (not admin) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 239 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 257 | # Create a guest user | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 314 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 370 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 499 | # Create a member user (not admin) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_api_token.py | 113 | # Create a service token (should be excluded) | COMMENT |
| MEDIUM | apps/api/plane/utils/paginator.py | 316 | # Create a field dictionary | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 536 | # Create a dictionary of group and sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 540 | # Create a dictionary of sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 544 | # Create a nested dictionary of group and sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 550 | # Create a field dictionary | COMMENT |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/middleware/logger.py | 49 | # Check if logging is required | COMMENT |
| LOW | apps/api/plane/middleware/logger.py | 107 | # Check if content is binary by looking for common binary file signatures | COMMENT |
| LOW | apps/api/plane/app/serializers/intake.py | 49 | # Check if status is being updated to accepted | COMMENT |
| LOW | apps/api/plane/app/serializers/intake.py | 54 | # Check if issue is in TRIAGE state | COMMENT |
| LOW | apps/api/plane/app/serializers/workspace.py | 49 | # Check if the name contains a URL | COMMENT |
| LOW | apps/api/plane/app/serializers/workspace.py | 62 | # Check if the slug is restricted | COMMENT |
| LOW | apps/api/plane/app/serializers/base.py | 151 | # Check if field in expansion then expand the field | COMMENT |
| LOW | apps/api/plane/app/serializers/base.py | 172 | # Check if issue_attachments is in fields or expand | COMMENT |
| LOW | apps/api/plane/app/views/page/version.py | 20 | # Check if pk is provided | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 118 | # Check if the file size is within the limit | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 121 | # Check if the entity type is allowed | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 128 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 240 | # Check if the asset exists | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 348 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 366 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 472 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 500 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 507 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 588 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 595 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 679 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 708 | # Check if the asset ids are provided | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 735 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/cycle/base.py | 538 | # Check if any cycle intersects in the given interval | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 54 | # Check if email is provided | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 61 | # Check if any invited user has an higher role | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 71 | # Check if user is already a member of workspace | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 183 | # Check if the user created account after invitation | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 188 | # Check if the user was already a member of workspace then activate the user | COMMENT |
| LOW | apps/api/plane/app/views/workspace/member.py | 164 | # Check if the leaving user is the only admin of the workspace | COMMENT |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 121 | # Check if email is the same as current email | COMMENT |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 128 | # Check if email already exists in the User model | COMMENT |
| LOW | apps/api/plane/app/views/intake/base.py | 436 | # Check if the update is a migration description update | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 59 | # Check if email is provided | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 139 | # Check if user has permission to join each project | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 237 | # Check if user is a part of workspace | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 251 | # Check if the user was already a member of the invited project | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 54 | # Check if the members array is empty | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 219 | # Check if the user is not editing their own role if they are not an admin | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 332 | # Check if the leaving user is the only admin of the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/attachment.py | 178 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/issue/label.py | 60 | # Check if the label name is unique within the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 683 | # Check if the update is a migration description update | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1208 | # Check if the issue identifier is a valid integer | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1220 | # Check if the user is a member of the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1329 | # Check if the issue exists | COMMENT |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 73 | # Check if the instance is registered | COMMENT |
| LOW | …plane/license/management/commands/register_instance.py | 54 | # Check if the instance is registered | COMMENT |
| LOW | apps/api/plane/license/api/serializers/workspace.py | 24 | # Check if the name contains a URL (kept consistent with the app-level | COMMENT |
| LOW | apps/api/plane/license/api/serializers/workspace.py | 38 | # Check if the slug is restricted | COMMENT |
| LOW | apps/api/plane/license/api/views/admin.py | 175 | # Check if already a user exists or not | COMMENT |
| LOW | apps/api/plane/license/api/views/admin.py | 380 | # Check if the user is an instance admin | COMMENT |
| LOW | apps/api/plane/bgtasks/recent_visited_task.py | 30 | # Check if the database is available | COMMENT |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 188 | # Check if the model has a 'deleted_at' field | COMMENT |
| LOW | apps/api/plane/bgtasks/notification_task.py | 330 | # Check if the value should be sent or not | COMMENT |
| LOW | apps/api/plane/bgtasks/webhook_task.py | 502 | # Check if key is present in current instance or not | COMMENT |
| LOW | …ps/api/plane/bgtasks/issue_description_version_task.py | 52 | # Check if description has changed | COMMENT |
| LOW | apps/api/plane/bgtasks/work_item_link_task.py | 192 | # Check if fallback exists (pinned to the validated IP). | COMMENT |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 56 | # Check if Issues | COMMENT |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 117 | # Check if Issues | COMMENT |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/plane/settings/openapi.py | 12 | # ======================================================================== | COMMENT |
| MEDIUM | apps/api/plane/settings/openapi.py | 14 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 31 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 33 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 37 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 39 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 43 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 45 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 50 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 52 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 261 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 263 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 267 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 269 | # ======================================================================== | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/notification_task.py | 279 | # --------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 235 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 237 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 298 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 300 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 319 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 330 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 332 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 134 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 192 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 246 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 250 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 63 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 11 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/openapi/examples.py | 94 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/openapi/examples.py | 96 | # ============================================================================ | COMMENT |
| MEDIUM | apps/api/plane/utils/openapi/examples.py | 385 | # ============================================================================ | COMMENT |
| MEDIUM | apps/api/plane/utils/openapi/examples.py | 387 | # ============================================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/middleware/logger.py | 160 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/settings/storage.py | 96 | print(f"Error generating presigned POST URL: {e}") | CODE |
| LOW | apps/api/plane/app/serializers/page.py | 195 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 66 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 78 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 121 | except Exception as exc: | CODE |
| LOW | apps/api/plane/app/views/base.py | 175 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 216 | except Exception as exc: | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 63 | def get_queryset(self): | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 111 | def dispatch(self, request, *args, **kwargs): | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 206 | def dispatch(self, request, *args, **kwargs): | CODE |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 115 | except Exception: | CODE |
| LOW | apps/api/plane/app/views/user/base.py | 169 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/user/base.py | 218 | except Exception: | CODE |
| LOW | apps/api/plane/app/views/external/base.py | 137 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 360 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 380 | except Exception as e: | CODE |
| LOW | …plane/license/management/commands/register_instance.py | 36 | except Exception: | CODE |
| LOW | …plane/license/management/commands/register_instance.py | 49 | except Exception: | CODE |
| MEDIUM | …plane/license/management/commands/register_instance.py | 40 | def check_for_latest_version(self, fallback_version): | CODE |
| LOW | apps/api/plane/license/utils/encryption.py | 28 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/utils/encryption.py | 42 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/license/utils/encryption.py | 20 | def encrypt_data(data): | CODE |
| MEDIUM | apps/api/plane/license/utils/encryption.py | 34 | def decrypt_data(encrypted_data): | CODE |
| LOW | apps/api/plane/license/api/views/configuration.py | 81 | except Exception: | CODE |
| LOW | apps/api/plane/license/api/views/configuration.py | 167 | except Exception: | CODE |
| MEDIUM | apps/api/plane/license/api/views/configuration.py | 66 | def delete(self, request): | CODE |
| LOW | apps/api/plane/license/api/views/admin.py | 442 | except Exception: | CODE |
| LOW | apps/api/plane/license/api/views/base.py | 66 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/api/views/base.py | 107 | except Exception as exc: | CODE |
| MEDIUM | apps/api/plane/license/api/views/base.py | 97 | def dispatch(self, request, *args, **kwargs): | CODE |
| LOW⚡ | apps/api/plane/bgtasks/storage_metadata_task.py | 28 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/storage_metadata_task.py | 15 | def get_asset_object_metadata(asset_id): | CODE |
| LOW | apps/api/plane/bgtasks/project_invitation_task.py | 84 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/project_invitation_task.py | 24 | def project_invitation(email, project_id, token, current_site, invitor): | CODE |
| LOW | apps/api/plane/bgtasks/page_version_task.py | 79 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 22 | def track_page_version(page_id, existing_instance, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/recent_visited_task.py | 59 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/recent_visited_task.py | 18 | def recent_visited_task(entity_name, entity_identifier, user_id, project_id, slu | CODE |
| LOW | apps/api/plane/bgtasks/user_activation_email_task.py | 67 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_activation_email_task.py | 23 | def user_activation_email(current_site, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/user_deactivation_email_task.py | 69 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_deactivation_email_task.py | 23 | def user_deactivation_email(current_site, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/user_email_update_task.py | 61 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/user_email_update_task.py | 112 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_email_update_task.py | 22 | def send_email_update_magic_code(email, token): | CODE |
| LOW | apps/api/plane/bgtasks/analytic_plot_export.py | 404 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/analytic_plot_export.py | 433 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/analytic_plot_export.py | 350 | def analytic_export_task(email, data, slug): | CODE |
| MEDIUM | apps/api/plane/bgtasks/analytic_plot_export.py | 410 | def export_analytics_to_csv_email(data, headers, keys, email, slug): | CODE |
| LOW | apps/api/plane/bgtasks/forgot_password_task.py | 70 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/forgot_password_task.py | 23 | def forgot_password(first_name, email, uidb64, token, current_site): | CODE |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 97 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/deletion_task.py | 99 | print(f"Error handling relation {related_name}: {str(e)}") | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 41 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 54 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 153 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 37 | def extract_asset_ids(html, tag): | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 46 | def replace_asset_ids(html, tag, duplicated_assets): | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 67 | def sync_with_external_service(entity_name, description_html): | CODE |
| 91 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/urls.py | 47 | except ImportError: | CODE |
| HIGH | apps/api/plane/app/serializers/issue.py | 230 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/serializers/issue.py | 271 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/serializers/issue.py | 304 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/serializers/issue.py | 325 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/serializers/issue.py | 252 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/views/asset/v2.py | 745 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/views/asset/v2.py | 753 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/app/views/asset/v2.py | 764 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/bgtasks/recent_visited_task.py | 34 | except DatabaseError: | CODE |
| HIGH | apps/api/plane/bgtasks/notification_task.py | 298 | except Exception: | CODE |
| HIGH | apps/api/plane/bgtasks/issue_activities_task.py | 1537 | except Exception: | CODE |
| HIGH | apps/api/plane/tests/smoke/test_auth_smoke.py | 38 | except ValueError: | CODE |
| HIGH | apps/api/plane/tests/smoke/test_auth_smoke.py | 86 | except ValueError: | CODE |
| HIGH | apps/api/plane/utils/issue_filters.py | 22 | except ValueError: | CODE |
| HIGH | apps/api/plane/utils/content_validator.py | 65 | except Exception: | CODE |
| HIGH | apps/api/plane/utils/core/request_scope.py | 75 | except AttributeError: | CODE |
| HIGH | apps/api/plane/utils/porters/formatters.py | 102 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | apps/api/plane/utils/porters/formatters.py | 265 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | apps/api/plane/utils/exporters/schemas/issue.py | 79 | except Exception: | CODE |
| HIGH | apps/api/plane/db/models/draft.py | 97 | except ImportError: | CODE |
| HIGH | apps/api/plane/db/models/draft.py | 107 | except ImportError: | CODE |
| HIGH | apps/api/plane/api/apps.py | 15 | except ImportError: | CODE |
| HIGH | apps/api/plane/api/serializers/issue.py | 202 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/api/serializers/issue.py | 224 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/api/serializers/issue.py | 243 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/api/serializers/issue.py | 276 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/api/serializers/issue.py | 297 | except IntegrityError: | CODE |
| HIGH | apps/api/plane/authentication/adapter/base.py | 270 | except FileAsset.DoesNotExist: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/app/serializers/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/api/serializers/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/space/serializer/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/app/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/license/api/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/api/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/space/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/app/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/license/api/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/api/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/space/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/app/views/page/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| HIGH | apps/api/plane/app/views/issue/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| HIGH | apps/api/plane/app/views/view/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-test.yml | 1 | # Docker Compose for running the API pytest suite in a contained environment. | COMMENT |
| LOW | packages/blocks/src/select/utils.ts | 121 | // `select` / `select-ghost` chrome — a full-width row trigger, wearing propel's | COMMENT |
| LOW | packages/blocks/src/select/root.tsx | 341 | // highlight here too; tracking it ourselves keeps `onSearchSubmit` correct in the one frame | COMMENT |
| LOW | packages/blocks/src/select/root.tsx | 561 | // ahead of `maybeOpenOnInput(...)` — so the open side effects that flip the ref have not run | COMMENT |
| LOW | packages/types/src/users.ts | 201 | // export interface ICurrentUser { | COMMENT |
| LOW | packages/types/src/users.ts | 221 | // sidebarText: string; | COMMENT |
| LOW | packages/constants/src/auth/index.ts | 21 | { | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 41 | COMMENT | |
| LOW | packages/shared-state/src/store/user.store.ts | 61 | // this.user = user; | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 81 | COMMENT | |
| LOW | packages/shared-state/src/store/user.store.ts | 101 | // } | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 121 | // runInAction(() => { | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 141 | // } | COMMENT |
| LOW | packages/i18n/src/core/instance.ts | 41 | returnEmptyString: false, | COMMENT |
| LOW | packages/codemods/tests/function-declaration.spec.ts | 361 | const result = await applyTransform( | COMMENT |
| LOW | packages/codemods/tests/function-declaration.spec.ts | 401 | // ReactDOM.preload(url, { as: "fetch", crossOrigin: "use-credentials" }); | COMMENT |
| LOW | .github/workflows/build-branch.yml | 141 | name: Checkout Files | COMMENT |
| LOW | .github/workflows/react-doctor.yml | 21 | # `actions/checkout` needs this to read the repo source. | COMMENT |
| LOW | .github/workflows/react-doctor.yml | 61 | - uses: millionco/react-doctor@v2 | COMMENT |
| LOW | apps/web/app/(all)/layout.preload.tsx | 1 | /** | COMMENT |
| LOW | apps/web/app/routes/core.ts | 41 | // Workspace Invitations | COMMENT |
| LOW | …/web/components/workspace/billing/comparison/plans.tsx | 621 | business: true, | COMMENT |
| LOW | …/web/components/workspace/billing/comparison/plans.tsx | 641 | // <span className="bg-[#3f76ff] text-on-color font-semibold text-9 p-0.5 w-fit whitespace-nowrap rounded- | COMMENT |
| LOW | apps/web/lib/wrappers/authentication-wrapper.tsx | 21 | type TPageType = EPageTypes; | COMMENT |
| LOW | apps/web/services/issue_filter.service.ts | 21 | // .then((response) => response?.data) | COMMENT |
| LOW | apps/web/store/dashboard.store.ts | 21 | // plane web store | COMMENT |
| LOW | apps/api/plane/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/settings/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/app/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/app/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/app/serializers/webhook.py | 61 | # never on list/retrieve/update. | COMMENT |
| LOW | apps/api/plane/license/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/bgtasks/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/management/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/management/commands/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/bgtasks/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/web/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/smoke/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/settings/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/models/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/serializers/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/views/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/app/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/management/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/management/commands/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/api/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/space/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/authentication/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/authentication/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/issue.py | 841 | CODE | |
| LOW | apps/api/plane/app/serializers/base.py | 105 | CODE | |
| LOW | apps/api/plane/app/serializers/base.py | 143 | CODE | |
| LOW | apps/api/plane/app/views/workspace/invite.py | 149 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 83 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 234 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 308 | CODE | |
| LOW | apps/api/plane/app/views/issue/sub_issue.py | 37 | CODE | |
| LOW | apps/api/plane/license/utils/instance_value.py | 17 | CODE | |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 18 | CODE | |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 46 | CODE | |
| LOW | apps/api/plane/bgtasks/page_transaction_task.py | 85 | CODE | |
| LOW | apps/api/plane/bgtasks/email_notification_task.py | 87 | CODE | |
| LOW | apps/api/plane/bgtasks/email_notification_task.py | 153 | CODE | |
| LOW | apps/api/plane/bgtasks/notification_task.py | 191 | CODE | |
| LOW | …ps/api/plane/bgtasks/issue_description_version_sync.py | 40 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_activities_task.py | 1504 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_version_sync.py | 34 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_version_sync.py | 181 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 28 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 89 | CODE | |
| LOW | apps/api/plane/tests/smoke/test_auth_smoke.py | 15 | CODE | |
| LOW | apps/api/plane/utils/issue_filters.py | 55 | CODE | |
| LOW | apps/api/plane/utils/date_utils.py | 12 | CODE | |
| LOW | apps/api/plane/utils/content_validator.py | 162 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 655 | CODE | |
| LOW | apps/api/plane/utils/order_queryset.py | 153 | CODE | |
| LOW | apps/api/plane/utils/filters/filterset.py | 55 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 142 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 313 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 411 | CODE | |
| LOW | apps/api/plane/utils/filters/converters.py | 241 | CODE | |
| LOW | apps/api/plane/utils/porters/formatters.py | 89 | CODE | |
| LOW | apps/api/plane/utils/porters/formatters.py | 233 | CODE | |
| LOW | …lane/db/management/commands/fix_duplicate_sequences.py | 27 | CODE | |
| LOW | apps/api/plane/db/models/base.py | 23 | CODE | |
| LOW | apps/api/plane/api/serializers/base.py | 39 | CODE | |
| LOW | apps/api/plane/api/serializers/base.py | 79 | CODE | |
| LOW | apps/api/plane/api/views/issue.py | 2383 | CODE | |
| LOW | apps/api/plane/api/views/project.py | 224 | CODE | |
| LOW | apps/api/plane/api/views/project.py | 546 | CODE | |
| LOW | apps/api/plane/space/serializer/base.py | 25 | CODE | |
| LOW | apps/api/plane/authentication/middleware/session.py | 29 | CODE | |
| LOW | …lane/authentication/provider/credentials/magic_code.py | 121 | CODE | |
| LOW | apps/api/plane/authentication/adapter/base.py | 139 | CODE | |
| LOW | apps/api/plane/authentication/adapter/oauth.py | 49 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/bgtasks/webhook_task.py | 126 | Retrieve and serialize model data based on the event type. Args: event (str): The type of event/model | STRING |
| HIGH | apps/api/plane/bgtasks/work_item_link_task.py | 79 | Perform a GET request that resolves, validates and pins every hop to its validated IP. Prevents SSRF via privat | STRING |
| HIGH | apps/api/plane/utils/ip_address.py | 106 | Resolve ``hostname`` and (when ``require_safe``) ensure every resolved address is a safe outbound target, retur | STRING |
| HIGH | apps/api/plane/utils/filters/converters.py | 320 | Convert legacy filters to rich filters format with validation Args: legacy_filters: Dictio | STRING |
| HIGH | apps/api/plane/utils/porters/exporter.py | 70 | Export queryset to file with configured format. Args: filename: Base filename (without ext | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/app/serializers/base.py | 164 | # A null relation stays null, matching the unexpanded response. | COMMENT |
| HIGH | apps/api/plane/utils/filters/filterset.py | 204 | Convenience filter: archived=true -> archived_at is not null, | STRING |
| HIGH | apps/api/plane/utils/filters/filter_backend.py | 453 | "message": (f"Value for '{key}' must be a scalar, null, or list/tuple of scalars"), | CODE |
| HIGH | apps/api/plane/api/serializers/base.py | 127 | # A null relation stays null, matching the unexpanded | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/utils/src/string.ts | 444 | // Create a dummy URL to leverage browser's URL normalization | COMMENT |
| MEDIUM | apps/live/src/controllers/document.controller.ts | 16 | // Define the schema with more robust validation | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 42 | # Cluster A — robust IP classification (verified on Python 3.12 semantics) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/api/test_projects.py | 260 | # transaction.on_commit(robust=True). | COMMENT |
| MEDIUM | apps/api/plane/api/views/project.py | 278 | # robust=True so broker / dispatch failures are logged | COMMENT |
| MEDIUM | apps/api/plane/api/views/project.py | 283 | # used here because Django's robust on_commit logging | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/web/app/routes/helper.ts | 16 | // Step 1: Create a Map to track routes by file path | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 19 | // Step 2: Process core routes first | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 25 | // Step 3: Process extended routes | COMMENT |
| LOW | apps/web/app/routes/helper.ts | 54 | // Step 4: Build final array maintaining order (core first, then extended-only) | COMMENT |
| LOW | apps/web/components/core/modals/change-email-modal.tsx | 83 | // Step 2: Verify the code and update email | COMMENT |
| LOW | apps/web/components/core/modals/change-email-modal.tsx | 106 | // Step 1: Check email and generate verification code | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 47 | // Step 1: Send force close message to ALL clients first | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 71 | // Step 2: Close connections | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/web/app/routes/helper.ts | 16 | // Step 1: Create a Map to track routes by file path | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 19 | // Step 2: Process core routes first | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 25 | // Step 3: Process extended routes | COMMENT |
| LOW | apps/web/app/routes/helper.ts | 54 | // Step 4: Build final array maintaining order (core first, then extended-only) | COMMENT |
| LOW | apps/web/components/core/modals/change-email-modal.tsx | 83 | // Step 2: Verify the code and update email | COMMENT |
| LOW | apps/web/components/core/modals/change-email-modal.tsx | 106 | // Step 1: Check email and generate verification code | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 47 | // Step 1: Send force close message to ALL clients first | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 71 | // Step 2: Close connections | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/webhook.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ps/api/plane/bgtasks/issue_description_version_task.py | 25 | def update_existing_version(version: IssueDescriptionVersion, issue) -> None: | CODE |
| LOW | apps/api/plane/utils/filters/__init__.py | 14 | __all__ = ["ComplexFilterBackend", "LegacyToRichFiltersConverter", "BaseFilterSet", "IssueFilterSet"] | CODE |
| LOW | apps/api/plane/utils/core/request_scope.py | 16 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/core/request_scope.py | 28 | def set_use_read_replica(use_replica: bool) -> None: | CODE |
| LOW | apps/api/plane/utils/core/__init__.py | 19 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/core/mixins/__init__.py | 13 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/porters/__init__.py | 9 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/porters/serializers/__init__.py | 7 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/exporters/__init__.py | 22 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/exporters/schemas/__init__.py | 20 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/openapi/__init__.py | 186 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/web/public/workbox-9f2f79cf.js | 65 | print(method, args); | CODE |
| HIGH | apps/web/store/issue/helpers/base-issues.store.ts | 1649 | // if value is not defined, return None value in array | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/view.py | 53 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 745 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 655 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/plane/tests/contract/api/test_projects.py | 254 | # Project and its scaffolding are persisted (commit happened | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-test.yml | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tensions/table/plugins/drag-handles/color-selector.tsx | 16 | // TODO: implement text color selector | COMMENT |