-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathsonar-project.properties
More file actions
157 lines (143 loc) · 5.35 KB
/
sonar-project.properties
File metadata and controls
157 lines (143 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# SonarCloud Configuration for MMGIS
sonar.projectKey=NASA-AMMOS_MMGIS
sonar.organization=nasa-ammos
# Project metadata - will be overridden by workflow
sonar.projectName=MMGIS
sonar.projectVersion=4.1.0
sonar.projectDescription=Multi-Mission Geographic Information System - A web-based mapping and localization solution for science operation on planetary missions.
# Project links - shown in SonarQube UI
sonar.links.homepage=https://nasa-ammos.github.io/MMGIS/
sonar.links.scm=https://github.com/NASA-AMMOS/MMGIS
sonar.links.issue=https://github.com/NASA-AMMOS/MMGIS/issues
sonar.links.ci=https://github.com/NASA-AMMOS/MMGIS/actions
# Source directories to analyze
# Note: 'public' directory excluded from sources to reduce LOC - contains mostly static assets (SVGs, images, config files)
# Note: 'auxiliary' directory excluded from sources - contains standalone utility scripts, not server code
sonar.sources=src,API,scripts,views,configure
# Note: sonar.tests is not set because test files are intermixed with source files.
# Test files are excluded via sonar.test.exclusions patterns below.
# Exclude patterns to reduce lines of code analyzed
sonar.exclusions=\
**/node_modules/**,\
**/build/**,\
**/dist/**,\
**/coverage/**,\
**/playwright-report/**,\
**/test-results/**,\
**/*.min.js,\
**/*.min.css,\
**/vendor/**,\
**/vendors/**,\
**/third_party/**,\
**/Missions/**,\
**/__pycache__/**,\
**/sessions/**,\
**/.venv*/**,\
**/data/**,\
**/logs/**,\
**/*.log,\
**/*.svg,\
**/*.json,\
**/.DS_Store,\
**/.vscode/**,\
**/.git/**,\
**/documentation/**,\
**/docs/**,\
**/public/**,\
**/auxiliary/**,\
**/images/**,\
**/fonts/**
# Test exclusions
sonar.test.exclusions=\
**/*.spec.js,\
**/*.test.js,\
**/*.spec.jsx,\
**/*.test.jsx,\
**/*.spec.ts,\
**/*.test.ts,\
**/*.spec.tsx,\
**/*.test.tsx,\
**/test/**,\
**/tests/**,\
**/__tests__/**,\
**/playwright-report/**,\
**/test-results/**
# Coverage exclusions - don't analyze coverage for these
sonar.coverage.exclusions=\
**/*.spec.js,\
**/*.test.js,\
**/*.spec.jsx,\
**/*.test.jsx,\
**/test/**,\
**/tests/**,\
**/__tests__/**,\
**/configuration/**,\
**/*.config.js,\
**/*.config.ts,\
**/scripts/**
# Duplication exclusions - ignore generated or vendor code
sonar.cpd.exclusions=\
**/*.min.js,\
**/vendor/**
# Language-specific settings
sonar.javascript.file.suffixes=.js,.jsx
sonar.typescript.file.suffixes=.ts,.tsx
sonar.python.version=3.8,3.9,3.10,3.11
# Code analysis settings
sonar.sourceEncoding=UTF-8
# Component tags for categorization and filtering in SonarQube UI
sonar.tags=gis,mapping,planetary,nasa,web-app,geospatial,react,nodejs,postgres
# New Code definition - consider code new if added in last 30 days
sonar.leak.period=30
# Import external reports - will be set by workflow
# sonar.sarifReportPaths will be provided by GitHub Actions workflow
# ==========================================
# LOC Optimization Notes
# ==========================================
# To stay within SonarCloud organization LOC limits, this configuration excludes:
# - public/ directory: ~130k LOC of SVG patterns, static assets, and config files
# - auxiliary/ directory: Standalone utility scripts for users (GDAL tiling, etc.) - not server code
# - All SVG files: Geologic patterns and icons (not meaningful for code analysis)
# - All JSON files: Configuration and data files (not executable code)
# - Image and font directories: Binary/generated assets
#
# Estimated LOC after exclusions: ~273k (down from ~475k total)
# This focuses analysis on MMGIS application code: src/, API/, scripts/, views/, configure/
# ==========================================
# Component Organization for Issue Attribution
# ==========================================
# While SonarQube/SonarCloud no longer uses sonar.modules for multi-module projects,
# issues are automatically organized by file path. The structure below documents
# the logical organization of MMGIS for reference:
#
# FRONTEND COMPONENTS (src/)
# - src/essence/ : Core frontend engine (map, globe, tools, UI framework)
# - src/essence/Tools/ : Interactive tools (Draw, Measure, Chemistry, etc.)
# - src/essence/Basics/ : Core UI components and utilities
# - src/essence/Ancillary: Supporting UI modules
# - src/pre/ : Pre-initialization scripts
# - src/external/ : Third-party integrations
#
# BACKEND COMPONENTS (API/)
# - API/Backend/Config/ : Mission configuration management
# - API/Backend/Draw/ : Multi-user vector drawing backend
# - API/Backend/Geodatasets/: Geospatial dataset management
# - API/Backend/Users/ : User authentication and authorization
# - API/Backend/Webhooks/: External service integrations
# - API/Backend/Stac/ : SpatioTemporal Asset Catalog integration
#
# CONFIGURATION SITE (configure/)
# - configure/src/ : Admin configuration interface (React app)
#
# BUILD & DEPLOYMENT (scripts/)
# - scripts/ : Build tools, server initialization, database setup
#
# VIEWS & TEMPLATES (views/)
# - views/ : Server-side Pug templates
#
# EXCLUDED FROM ANALYSIS:
# - auxiliary/ : Standalone Python utilities (not server code)
# - public/ : Static assets (SVGs, images, fonts)
#
# Issues in SonarQube will be automatically grouped by these directory paths,
# making it easy to identify which component needs attention.