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 4.0
054   */
055  String SUBCATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
056
057  /**
058   * @since 5.1
059   */
060  String SUBCATEGORY_LOOKNFEEL = "looknfeel";
061
062  /**
063   * @since 5.1
064   */
065  String SUBCATEGORY_ISSUES = "issues";
066
067  /**
068   * @since 4.0
069   */
070  String SUBCATEGORY_L10N = "localization";
071
072  /**
073   * @since 2.11
074   */
075  String CATEGORY_CODE_COVERAGE = "codeCoverage";
076
077  /**
078   * @since 2.11
079   */
080  String CATEGORY_SECURITY = "security";
081
082  /**
083   * @since 2.11
084   * @deprecated since 6.0
085   */
086  @Deprecated
087  String CATEGORY_JAVA = "java";
088
089  /**
090   * @since 3.3
091   */
092  String CATEGORY_EXCLUSIONS = "exclusions";
093
094  /**
095   * @since 4.0
096   */
097  String SUBCATEGORY_FILES_EXCLUSIONS = "files";
098
099  /**
100   * @since 4.0
101   */
102  String SUBCATEGORY_DUPLICATIONS_EXCLUSIONS = "duplications";
103
104  /**
105   * @since 4.0
106   */
107  String SUBCATEGORY_COVERAGE_EXCLUSIONS = "coverage";
108
109  /**
110   * @since 6.1
111   */
112  String SUBCATEGORY_EMAIL = "email";
113
114  /**
115   * @since 3.7
116   */
117  String CATEGORY_LICENSES = "licenses";
118
119  /**
120   * @since 4.0
121   */
122  String CATEGORY_TECHNICAL_DEBT = "technicalDebt";
123
124  /* Global settings */
125  String SONAR_HOME = "SONAR_HOME";
126  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
127  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
128
129  /**
130   * @since 6.3
131   */
132  String PROJECT_ORGANIZATION_PROPERTY = "sonar.organization";
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   * @deprecated since 4.2 projects are now multi-language
163   */
164  @Deprecated
165  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
166
167  /* Exclusions */
168  String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
169  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
170
171  /* Coverage exclusions */
172  String PROJECT_COVERAGE_EXCLUSIONS_PROPERTY = "sonar.coverage.exclusions";
173
174  /**
175   * @since 3.3
176   */
177  String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
178  String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
179  String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
180  String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
181
182  /* Sonar Core */
183
184  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
185  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
186
187  /**
188   * @deprecated since 6.3. This feature is not supported anymore
189   * @see <a href="https://jira.sonarsource.com/browse/SONAR-7762">SONAR-7762/a>
190   */
191  @Deprecated
192  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
193
194  /**
195   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
196   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
197   */
198  @Deprecated
199  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
200
201  /**
202   * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
203   * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
204   */
205  @Deprecated
206  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
207
208  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
209
210  /**
211   * @deprecated since 2.14. See http://jira.sonarsource.com/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
212   */
213  @Deprecated
214  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
215
216  /**
217   * @since 2.14
218   */
219  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
220
221  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
222
223  /**
224   * @deprecated since 6.3. This feature is not supported anymore
225   * @see <a href="https://jira.sonarsource.com/browse/SONAR-8208">SONAR-8208/a>
226   */
227  @Deprecated
228  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
229
230  /**
231   * @since 3.6
232   * @deprecated since 5.4. This feature is not supported anymore. See http://jira.sonarsource.com/browse/SONAR-7219
233   */
234  @Deprecated
235  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
236
237  String SERVER_ID = "sonar.core.id";
238
239  // format is yyyy-MM-dd'T'HH:mm:ssZ
240  String SERVER_STARTTIME = "sonar.core.startTime";
241
242  /**
243   * This property defines the SonarQubeServer base url, such as <i>http://yourhost.yourdomain/sonar</i>.
244   * When this property is not set, the base url of the SonarQube server is provided by {@link Server#getURL()}.
245   *
246   * @since 2.10
247   */
248  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
249
250  /**
251   * @see #SERVER_BASE_URL
252   * @since 2.10
253   * @deprecated since 5.6. This constant default value is incorrect if a host and/or a port and/or a context have been configured.
254   *             The correct default value when {@link #SERVER_BASE_URL} is not set is provided by {@link Server#getURL()}.
255   */
256  @Deprecated
257  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
258
259  /**
260   * @since 2.11
261   */
262  String CPD_CROSS_PROJECT = "sonar.cpd.cross_project";
263
264  /**
265   * @since 3.5
266   */
267  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
268
269  /**
270   * @since 2.11
271   */
272  String ORGANISATION = "sonar.organisation";
273
274  /**
275   * @since 2.11
276   */
277  String PERMANENT_SERVER_ID = "sonar.server_id";
278
279  /**
280   * @since 2.11
281   */
282  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
283
284  /**
285   * @since 3.3
286   */
287  String LINKS_HOME_PAGE = "sonar.links.homepage";
288
289  /**
290   * @since 3.3
291   */
292  String LINKS_CI = "sonar.links.ci";
293
294  /**
295   * @since 3.3
296   */
297  String LINKS_ISSUE_TRACKER = "sonar.links.issue";
298
299  /**
300   * @since 3.3
301   */
302  String LINKS_SOURCES = "sonar.links.scm";
303
304  /**
305   * @since 3.3
306   */
307  String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
308
309  /**
310   * @since 3.4
311   */
312  String LOGIN = "sonar.login";
313
314  /**
315   * @since 3.4
316   */
317  String PASSWORD = "sonar.password";
318
319  /**
320   * @since 3.5
321   */
322  String TASK = "sonar.task";
323
324  /**
325   * @since 3.6
326   */
327  String SCAN_TASK = "scan";
328
329  /**
330   * @since 3.6
331   */
332  String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
333
334  /**
335   * @since 4.0
336   * @deprecated in 5.1 no more used
337   */
338  @Deprecated
339  String PREVIEW_READ_TIMEOUT_SEC = "sonar.preview.readTimeout";
340
341  /**
342   * @since 4.0
343   * @deprecated replaced in 5.2 by the permission 'provisioning'
344   */
345  @Deprecated
346  String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
347
348  /**
349   * @since 4.0
350   */
351  String ANALYSIS_MODE = "sonar.analysis.mode";
352
353  /**
354   * @since 4.0
355   * @deprecated since 5.2 the default mode is publish
356   */
357  @Deprecated
358  String ANALYSIS_MODE_ANALYSIS = "analysis";
359
360  /**
361   * @since 4.0
362   */
363  String ANALYSIS_MODE_PREVIEW = "preview";
364
365  /**
366   * @since 5.2
367   */
368  String ANALYSIS_MODE_ISSUES = "issues";
369
370  /**
371   * @since 5.2
372   */
373  String ANALYSIS_MODE_PUBLISH = "publish";
374
375  /**
376   * @since 4.0
377   * @deprecated since 5.2
378   */
379  @Deprecated
380  String ANALYSIS_MODE_INCREMENTAL = "incremental";
381
382  /**
383   * @since 4.0
384   */
385  String PREVIEW_INCLUDE_PLUGINS = "sonar.preview.includePlugins";
386  String PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
387
388  /**
389   * @since 4.0
390   */
391  String PREVIEW_EXCLUDE_PLUGINS = "sonar.preview.excludePlugins";
392
393  String PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE = "devcockpit,pdfreport,governance,ldap,authaad,authgithub,authbitbucket,googleanalytics";
394
395  /**
396   * @since 4.0
397   */
398  String WORKING_DIRECTORY = "sonar.working.directory";
399
400  String WORKING_DIRECTORY_DEFAULT_VALUE = ".sonar";
401
402  /**
403   * @since 5.2
404   */
405  String GLOBAL_WORKING_DIRECTORY = "sonar.globalWorking.directory";
406  String GLOBAL_WORKING_DIRECTORY_DEFAULT_VALUE = "";
407
408  /**
409   * @since 4.2
410   * @deprecated no more used since 5.5
411   */
412  @Deprecated
413  String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
414
415  /**
416   * @since 4.0
417   * @deprecated no more used since 6.3. See https://jira.sonarsource.com/browse/SONAR-8610
418   */
419  @Deprecated
420  String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
421
422  /**
423   * @since 4.5
424   * @deprecated no used anymore since 5.2
425   */
426  @Deprecated
427  String SIZE_METRIC = "sonar.technicalDebt.sizeMetric";
428
429  /**
430   * @since 4.5
431   */
432  String DEVELOPMENT_COST = "sonar.technicalDebt.developmentCost";
433
434  /**
435   * @since 4.5
436   */
437  String DEVELOPMENT_COST_DEF_VALUE = "30";
438
439  /**
440   * @since 4.5
441   */
442  String RATING_GRID = "sonar.technicalDebt.ratingGrid";
443
444  /**
445   * @since 4.5
446   */
447  String RATING_GRID_DEF_VALUES = "0.05,0.1,0.2,0.5";
448
449  /**
450   * @since 4.5
451   */
452  String LANGUAGE_SPECIFIC_PARAMETERS = "languageSpecificParameters";
453
454  /**
455   * @since 4.5
456   */
457  String LANGUAGE_SPECIFIC_PARAMETERS_LANGUAGE_KEY = "language";
458
459  /**
460   * @since 4.5
461   */
462  String LANGUAGE_SPECIFIC_PARAMETERS_MAN_DAYS_KEY = "man_days";
463
464  /**
465   * @since 4.5
466   */
467  String LANGUAGE_SPECIFIC_PARAMETERS_SIZE_METRIC_KEY = "size_metric";
468
469  /**
470   * @since 5.0
471   */
472  String CATEGORY_SCM = "scm";
473
474  /**
475   * @since 5.0
476   */
477  String SCM_DISABLED_KEY = "sonar.scm.disabled";
478
479  /**
480   * @since 5.0
481   */
482  String SCM_PROVIDER_KEY = "sonar.scm.provider";
483
484  /**
485   * @since 5.1
486   * @deprecated since 6.3. No longer taken into consideration as all files are always imported.
487   */
488  @Deprecated
489  String IMPORT_UNKNOWN_FILES_KEY = "sonar.import_unknown_files";
490
491  /**
492   * @since 5.1
493   */
494  String DEFAULT_ISSUE_ASSIGNEE = "sonar.issues.defaultAssigneeLogin";
495
496}