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