001/*
002 * SonarQube
003 * Copyright (C) 2009-2018 SonarSource SA
004 * mailto:info AT sonarsource DOT com
005 *
006 * This program is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 3 of the License, or (at your option) any later version.
010 *
011 * This program is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014 * Lesser General Public License for more details.
015 *
016 * You should have received a copy of the GNU Lesser General Public License
017 * along with this program; if not, write to the Free Software Foundation,
018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
019 */
020package org.sonar.api;
021
022import org.sonar.api.batch.fs.FileSystem;
023import org.sonar.api.platform.Server;
024
025/**
026 * Non-exhaustive list of constants of core properties.
027 *
028 * @since 1.11
029 */
030public interface CoreProperties {
031
032  /**
033   * @since 3.0
034   */
035  String ENCRYPTION_SECRET_KEY_PATH = "sonar.secretKeyPath";
036
037  /**
038   * @since 2.11
039   */
040  String CATEGORY_GENERAL = "general";
041
042  /**
043   * @since 4.0
044   */
045  String SUBCATEGORY_DATABASE_CLEANER = "databaseCleaner";
046
047  /**
048   * @since 4.0
049   */
050  String SUBCATEGORY_DUPLICATIONS = "duplications";
051
052  /**
053   * @since 6.6
054   */
055  String SUBCATEGORY_BRANCHES = "Branches";
056
057  /**
058   * @since 4.0
059   */
060  String SUBCATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
061
062  /**
063   * @since 5.1
064   */
065  String SUBCATEGORY_LOOKNFEEL = "looknfeel";
066
067  /**
068   * @since 5.1
069   */
070  String SUBCATEGORY_ISSUES = "issues";
071
072  /**
073   * @since 4.0
074   */
075  String SUBCATEGORY_L10N = "localization";
076
077  /**
078   * @since 2.11
079   */
080  String CATEGORY_CODE_COVERAGE = "codeCoverage";
081
082  /**
083   * @since 2.11
084   */
085  String CATEGORY_SECURITY = "security";
086
087  /**
088   * @since 2.11
089   * @deprecated since 6.0
090   */
091  @Deprecated
092  String CATEGORY_JAVA = "java";
093
094  /**
095   * @since 3.3
096   */
097  String CATEGORY_EXCLUSIONS = "exclusions";
098
099  /**
100   * @since 4.0
101   */
102  String SUBCATEGORY_FILES_EXCLUSIONS = "files";
103
104  /**
105   * @since 4.0
106   */
107  String SUBCATEGORY_DUPLICATIONS_EXCLUSIONS = "duplications";
108
109  /**
110   * @since 4.0
111   */
112  String SUBCATEGORY_COVERAGE_EXCLUSIONS = "coverage";
113
114  /**
115   * @since 6.1
116   */
117  String SUBCATEGORY_EMAIL = "email";
118
119  /**
120   * @since 3.7
121   */
122  String CATEGORY_LICENSES = "licenses";
123
124  /**
125   * @since 4.0
126   */
127  String CATEGORY_TECHNICAL_DEBT = "technicalDebt";
128
129  /**
130   * @since 6.7.6
131   */
132  String SUBCATEGORY_FILE_MOVE = "fileMove";
133
134  /* Global settings */
135  String SONAR_HOME = "SONAR_HOME";
136
137  /**
138   * @deprecated since 6.7. This feature is deprecated in favor of the new branch feature.
139   * @see <a href="https://redirect.sonarsource.com/doc/branches.html">https://redirect.sonarsource.com/doc/branches.html/a>
140   */
141  @Deprecated
142  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
143  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
144
145  /**
146   * @since 2.6
147   */
148  String PROJECT_KEY_PROPERTY = "sonar.projectKey";
149
150  /**
151   * @since 2.6
152   */
153  String PROJECT_NAME_PROPERTY = "sonar.projectName";
154
155  /**
156   * @since 2.6
157   */
158  String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
159
160  /**
161   * To determine value of this property use {@link FileSystem#encoding()}.
162   *
163   * @since 2.6
164   */
165  String ENCODING_PROPERTY = "sonar.sourceEncoding";
166
167  /**
168   * Value format is yyyy-MM-dd
169   */
170  String PROJECT_DATE_PROPERTY = "sonar.projectDate";
171
172  /**
173   * @since 6.6
174   */
175  String LONG_LIVED_BRANCHES_REGEX = "sonar.branch.longLivedBranches.regex";
176
177  /**
178   * @deprecated since 4.2 projects are now multi-language
179   */
180  @Deprecated
181  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
182
183  /* Exclusions */
184  String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
185  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
186
187  /* Coverage exclusions */
188  String PROJECT_COVERAGE_EXCLUSIONS_PROPERTY = "sonar.coverage.exclusions";
189
190  /**
191   * @since 3.3
192   */
193  String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
194  String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
195  String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
196  String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
197
198  /* Sonar Core */
199
200  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
201  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
202
203  /**
204   * @deprecated since 6.3. This feature is not supported anymore
205   * @see <a href="https://jira.sonarsource.com/browse/SONAR-7762">SONAR-7762/a>
206   */
207  @Deprecated
208  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
209
210  /**
211   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
212   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
213   */
214  @Deprecated
215  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
216
217  /**
218   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
219   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
220   */
221  @Deprecated
222  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
223
224  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
225
226  /**
227   * @deprecated since 2.14. See http://jira.sonarsource.com/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
228   */
229  @Deprecated
230  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
231
232  /**
233   * @since 2.14
234   */
235  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
236
237  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
238
239  /**
240   * @deprecated since 6.3. This feature is not supported anymore
241   * @see <a href="https://jira.sonarsource.com/browse/SONAR-8208">SONAR-8208/a>
242   */
243  @Deprecated
244  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
245
246  /**
247   * @since 3.6
248   * @deprecated since 5.4. This feature is not supported anymore. See http://jira.sonarsource.com/browse/SONAR-7219
249   */
250  @Deprecated
251  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
252
253  String SERVER_ID = "sonar.core.id";
254
255  // format is yyyy-MM-dd'T'HH:mm:ssZ
256  String SERVER_STARTTIME = "sonar.core.startTime";
257
258  /**
259   * This property defines the SonarQubeServer base url, such as <i>http://yourhost.yourdomain/sonar</i>.
260   * When this property is not set, the base url of the SonarQube server is provided by {@link Server#getURL()}.
261   *
262   * @since 2.10
263   */
264  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
265
266  /**
267   * @see #SERVER_BASE_URL
268   * @since 2.10
269   * @deprecated since 5.6. This constant default value is incorrect if a host and/or a port and/or a context have been configured.
270   *             The correct default value when {@link #SERVER_BASE_URL} is not set is provided by {@link Server#getURL()}.
271   */
272  @Deprecated
273  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
274
275  /**
276   * @since 2.11
277   * @deprecated since 6.7
278   */
279  @Deprecated
280  String CPD_CROSS_PROJECT = "sonar.cpd.cross_project";
281
282  /**
283   * @since 3.5
284   */
285  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
286
287  /**
288   * @since 2.11
289   * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
290   */
291  @Deprecated
292  String ORGANISATION = "sonar.organisation";
293
294  /**
295   * @since 2.11
296   * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
297   */
298  @Deprecated
299  String PERMANENT_SERVER_ID = "sonar.server_id";
300
301  /**
302   * @since 2.11
303   * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
304   */
305  @Deprecated
306  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
307
308  /**
309   * @since 3.3
310   */
311  String LINKS_HOME_PAGE = "sonar.links.homepage";
312
313  /**
314   * @since 3.3
315   */
316  String LINKS_CI = "sonar.links.ci";
317
318  /**
319   * @since 3.3
320   */
321  String LINKS_ISSUE_TRACKER = "sonar.links.issue";
322
323  /**
324   * @since 3.3
325   */
326  String LINKS_SOURCES = "sonar.links.scm";
327
328  /**
329   * @since 3.3
330   */
331  String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
332
333  /**
334   * @since 3.4
335   */
336  String LOGIN = "sonar.login";
337
338  /**
339   * @since 3.4
340   */
341  String PASSWORD = "sonar.password";
342
343  /**
344   * @since 3.5
345   */
346  String TASK = "sonar.task";
347
348  /**
349   * @since 3.6
350   */
351  String SCAN_TASK = "scan";
352
353  /**
354   * @since 3.6
355   */
356  String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
357
358  /**
359   * @since 4.0
360   * @deprecated in 5.1 no more used
361   */
362  @Deprecated
363  String PREVIEW_READ_TIMEOUT_SEC = "sonar.preview.readTimeout";
364
365  /**
366   * @since 4.0
367   * @deprecated replaced in 5.2 by the permission 'provisioning'
368   */
369  @Deprecated
370  String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
371
372  /**
373   * @since 4.0
374   */
375  String ANALYSIS_MODE = "sonar.analysis.mode";
376
377  /**
378   * @since 4.0
379   * @deprecated since 5.2 the default mode is publish
380   */
381  @Deprecated
382  String ANALYSIS_MODE_ANALYSIS = "analysis";
383
384  /**
385   * @since 4.0
386   */
387  String ANALYSIS_MODE_PREVIEW = "preview";
388
389  /**
390   * @since 5.2
391   */
392  String ANALYSIS_MODE_ISSUES = "issues";
393
394  /**
395   * @since 5.2
396   */
397  String ANALYSIS_MODE_PUBLISH = "publish";
398
399  /**
400   * @since 4.0
401   * @deprecated since 5.2
402   */
403  @Deprecated
404  String ANALYSIS_MODE_INCREMENTAL = "incremental";
405
406  /**
407   * @since 4.0
408   */
409  String PREVIEW_INCLUDE_PLUGINS = "sonar.preview.includePlugins";
410  String PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
411
412  /**
413   * @since 4.0
414   */
415  String PREVIEW_EXCLUDE_PLUGINS = "sonar.preview.excludePlugins";
416
417  String PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE = "devcockpit,pdfreport,governance,ldap,authaad,authgithub,authbitbucket,googleanalytics";
418
419  /**
420   * @since 4.0
421   */
422  String WORKING_DIRECTORY = "sonar.working.directory";
423
424  String WORKING_DIRECTORY_DEFAULT_VALUE = ".sonar";
425
426  /**
427   * @since 5.2
428   */
429  String GLOBAL_WORKING_DIRECTORY = "sonar.globalWorking.directory";
430  String GLOBAL_WORKING_DIRECTORY_DEFAULT_VALUE = "";
431
432  /**
433   * @since 4.2
434   * @deprecated no more used since 5.5
435   */
436  @Deprecated
437  String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
438
439  /**
440   * @since 4.0
441   * @deprecated no more used since 6.3. See https://jira.sonarsource.com/browse/SONAR-8610
442   */
443  @Deprecated
444  String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
445
446  /**
447   * @since 4.5
448   * @deprecated no used anymore since 5.2
449   */
450  @Deprecated
451  String SIZE_METRIC = "sonar.technicalDebt.sizeMetric";
452
453  /**
454   * @since 4.5
455   */
456  String DEVELOPMENT_COST = "sonar.technicalDebt.developmentCost";
457
458  /**
459   * @since 4.5
460   */
461  String DEVELOPMENT_COST_DEF_VALUE = "30";
462
463  /**
464   * @since 4.5
465   */
466  String RATING_GRID = "sonar.technicalDebt.ratingGrid";
467
468  /**
469   * @since 4.5
470   */
471  String RATING_GRID_DEF_VALUES = "0.05,0.1,0.2,0.5";
472
473  /**
474   * @since 4.5
475   */
476  String LANGUAGE_SPECIFIC_PARAMETERS = "languageSpecificParameters";
477
478  /**
479   * @since 4.5
480   */
481  String LANGUAGE_SPECIFIC_PARAMETERS_LANGUAGE_KEY = "language";
482
483  /**
484   * @since 4.5
485   */
486  String LANGUAGE_SPECIFIC_PARAMETERS_MAN_DAYS_KEY = "man_days";
487
488  /**
489   * @since 4.5
490   */
491  String LANGUAGE_SPECIFIC_PARAMETERS_SIZE_METRIC_KEY = "size_metric";
492
493  /**
494   * @since 5.0
495   */
496  String CATEGORY_SCM = "scm";
497
498  /**
499   * @since 5.0
500   */
501  String SCM_DISABLED_KEY = "sonar.scm.disabled";
502
503  /**
504   * @since 5.0
505   */
506  String SCM_PROVIDER_KEY = "sonar.scm.provider";
507
508  /**
509   * @since 5.1
510   * @deprecated since 6.3. No longer taken into consideration as all files are always imported.
511   */
512  @Deprecated
513  String IMPORT_UNKNOWN_FILES_KEY = "sonar.import_unknown_files";
514
515  /**
516   * @since 5.1
517   */
518  String DEFAULT_ISSUE_ASSIGNEE = "sonar.issues.defaultAssigneeLogin";
519
520  /**
521   * @since 6.7.6
522   */
523  String SKIP_FILEMOVE_DETECTION_KEY = "sonar.skipFileMoveDetection";
524}