001/*
002 * SonarQube
003 * Copyright (C) 2009-2017 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  /* Global settings */
130  String SONAR_HOME = "SONAR_HOME";
131  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
132  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
133
134  /**
135   * @since 2.6
136   */
137  String PROJECT_KEY_PROPERTY = "sonar.projectKey";
138
139  /**
140   * @since 2.6
141   */
142  String PROJECT_NAME_PROPERTY = "sonar.projectName";
143
144  /**
145   * @since 2.6
146   */
147  String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
148
149  /**
150   * To determine value of this property use {@link FileSystem#encoding()}.
151   *
152   * @since 2.6
153   */
154  String ENCODING_PROPERTY = "sonar.sourceEncoding";
155
156  /**
157   * Value format is yyyy-MM-dd
158   */
159  String PROJECT_DATE_PROPERTY = "sonar.projectDate";
160
161  /**
162   * @since 6.6
163   */
164  String LONG_LIVED_BRANCHES_REGEX = "sonar.branch.longLivedBranches.regex";
165
166  /**
167   * @deprecated since 4.2 projects are now multi-language
168   */
169  @Deprecated
170  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
171
172  /* Exclusions */
173  String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
174  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
175
176  /* Coverage exclusions */
177  String PROJECT_COVERAGE_EXCLUSIONS_PROPERTY = "sonar.coverage.exclusions";
178
179  /**
180   * @since 3.3
181   */
182  String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
183  String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
184  String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
185  String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
186
187  /* Sonar Core */
188
189  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
190  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
191
192  /**
193   * @deprecated since 6.3. This feature is not supported anymore
194   * @see <a href="https://jira.sonarsource.com/browse/SONAR-7762">SONAR-7762/a>
195   */
196  @Deprecated
197  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
198
199  /**
200   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
201   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
202   */
203  @Deprecated
204  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
205
206  /**
207   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
208   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
209   */
210  @Deprecated
211  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
212
213  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
214
215  /**
216   * @deprecated since 2.14. See http://jira.sonarsource.com/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
217   */
218  @Deprecated
219  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
220
221  /**
222   * @since 2.14
223   */
224  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
225
226  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
227
228  /**
229   * @deprecated since 6.3. This feature is not supported anymore
230   * @see <a href="https://jira.sonarsource.com/browse/SONAR-8208">SONAR-8208/a>
231   */
232  @Deprecated
233  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
234
235  /**
236   * @since 3.6
237   * @deprecated since 5.4. This feature is not supported anymore. See http://jira.sonarsource.com/browse/SONAR-7219
238   */
239  @Deprecated
240  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
241
242  String SERVER_ID = "sonar.core.id";
243
244  // format is yyyy-MM-dd'T'HH:mm:ssZ
245  String SERVER_STARTTIME = "sonar.core.startTime";
246
247  /**
248   * This property defines the SonarQubeServer base url, such as <i>http://yourhost.yourdomain/sonar</i>.
249   * When this property is not set, the base url of the SonarQube server is provided by {@link Server#getURL()}.
250   *
251   * @since 2.10
252   */
253  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
254
255  /**
256   * @see #SERVER_BASE_URL
257   * @since 2.10
258   * @deprecated since 5.6. This constant default value is incorrect if a host and/or a port and/or a context have been configured.
259   *             The correct default value when {@link #SERVER_BASE_URL} is not set is provided by {@link Server#getURL()}.
260   */
261  @Deprecated
262  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
263
264  /**
265   * @since 2.11
266   */
267  String CPD_CROSS_PROJECT = "sonar.cpd.cross_project";
268
269  /**
270   * @since 3.5
271   */
272  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
273
274  /**
275   * @since 2.11
276   */
277  String ORGANISATION = "sonar.organisation";
278
279  /**
280   * @since 2.11
281   */
282  String PERMANENT_SERVER_ID = "sonar.server_id";
283
284  /**
285   * @since 2.11
286   */
287  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
288
289  /**
290   * @since 3.3
291   */
292  String LINKS_HOME_PAGE = "sonar.links.homepage";
293
294  /**
295   * @since 3.3
296   */
297  String LINKS_CI = "sonar.links.ci";
298
299  /**
300   * @since 3.3
301   */
302  String LINKS_ISSUE_TRACKER = "sonar.links.issue";
303
304  /**
305   * @since 3.3
306   */
307  String LINKS_SOURCES = "sonar.links.scm";
308
309  /**
310   * @since 3.3
311   */
312  String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
313
314  /**
315   * @since 3.4
316   */
317  String LOGIN = "sonar.login";
318
319  /**
320   * @since 3.4
321   */
322  String PASSWORD = "sonar.password";
323
324  /**
325   * @since 3.5
326   */
327  String TASK = "sonar.task";
328
329  /**
330   * @since 3.6
331   */
332  String SCAN_TASK = "scan";
333
334  /**
335   * @since 3.6
336   */
337  String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
338
339  /**
340   * @since 4.0
341   * @deprecated in 5.1 no more used
342   */
343  @Deprecated
344  String PREVIEW_READ_TIMEOUT_SEC = "sonar.preview.readTimeout";
345
346  /**
347   * @since 4.0
348   * @deprecated replaced in 5.2 by the permission 'provisioning'
349   */
350  @Deprecated
351  String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
352
353  /**
354   * @since 4.0
355   */
356  String ANALYSIS_MODE = "sonar.analysis.mode";
357
358  /**
359   * @since 4.0
360   * @deprecated since 5.2 the default mode is publish
361   */
362  @Deprecated
363  String ANALYSIS_MODE_ANALYSIS = "analysis";
364
365  /**
366   * @since 4.0
367   */
368  String ANALYSIS_MODE_PREVIEW = "preview";
369
370  /**
371   * @since 5.2
372   */
373  String ANALYSIS_MODE_ISSUES = "issues";
374
375  /**
376   * @since 5.2
377   */
378  String ANALYSIS_MODE_PUBLISH = "publish";
379
380  /**
381   * @since 4.0
382   * @deprecated since 5.2
383   */
384  @Deprecated
385  String ANALYSIS_MODE_INCREMENTAL = "incremental";
386
387  /**
388   * @since 4.0
389   */
390  String PREVIEW_INCLUDE_PLUGINS = "sonar.preview.includePlugins";
391  String PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
392
393  /**
394   * @since 4.0
395   */
396  String PREVIEW_EXCLUDE_PLUGINS = "sonar.preview.excludePlugins";
397
398  String PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE = "devcockpit,pdfreport,governance,ldap,authaad,authgithub,authbitbucket,googleanalytics";
399
400  /**
401   * @since 4.0
402   */
403  String WORKING_DIRECTORY = "sonar.working.directory";
404
405  String WORKING_DIRECTORY_DEFAULT_VALUE = ".sonar";
406
407  /**
408   * @since 5.2
409   */
410  String GLOBAL_WORKING_DIRECTORY = "sonar.globalWorking.directory";
411  String GLOBAL_WORKING_DIRECTORY_DEFAULT_VALUE = "";
412
413  /**
414   * @since 4.2
415   * @deprecated no more used since 5.5
416   */
417  @Deprecated
418  String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
419
420  /**
421   * @since 4.0
422   * @deprecated no more used since 6.3. See https://jira.sonarsource.com/browse/SONAR-8610
423   */
424  @Deprecated
425  String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
426
427  /**
428   * @since 4.5
429   * @deprecated no used anymore since 5.2
430   */
431  @Deprecated
432  String SIZE_METRIC = "sonar.technicalDebt.sizeMetric";
433
434  /**
435   * @since 4.5
436   */
437  String DEVELOPMENT_COST = "sonar.technicalDebt.developmentCost";
438
439  /**
440   * @since 4.5
441   */
442  String DEVELOPMENT_COST_DEF_VALUE = "30";
443
444  /**
445   * @since 4.5
446   */
447  String RATING_GRID = "sonar.technicalDebt.ratingGrid";
448
449  /**
450   * @since 4.5
451   */
452  String RATING_GRID_DEF_VALUES = "0.05,0.1,0.2,0.5";
453
454  /**
455   * @since 4.5
456   */
457  String LANGUAGE_SPECIFIC_PARAMETERS = "languageSpecificParameters";
458
459  /**
460   * @since 4.5
461   */
462  String LANGUAGE_SPECIFIC_PARAMETERS_LANGUAGE_KEY = "language";
463
464  /**
465   * @since 4.5
466   */
467  String LANGUAGE_SPECIFIC_PARAMETERS_MAN_DAYS_KEY = "man_days";
468
469  /**
470   * @since 4.5
471   */
472  String LANGUAGE_SPECIFIC_PARAMETERS_SIZE_METRIC_KEY = "size_metric";
473
474  /**
475   * @since 5.0
476   */
477  String CATEGORY_SCM = "scm";
478
479  /**
480   * @since 5.0
481   */
482  String SCM_DISABLED_KEY = "sonar.scm.disabled";
483
484  /**
485   * @since 5.0
486   */
487  String SCM_PROVIDER_KEY = "sonar.scm.provider";
488
489  /**
490   * @since 5.1
491   * @deprecated since 6.3. No longer taken into consideration as all files are always imported.
492   */
493  @Deprecated
494  String IMPORT_UNKNOWN_FILES_KEY = "sonar.import_unknown_files";
495
496  /**
497   * @since 5.1
498   */
499  String DEFAULT_ISSUE_ASSIGNEE = "sonar.issues.defaultAssigneeLogin";
500}