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  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
195  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
196  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
197
198  /**
199   * @deprecated since 2.14. See http://jira.sonarsource.com/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
200   */
201  @Deprecated
202  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
203
204  /**
205   * @since 2.14
206   */
207  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
208
209  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
210
211  /**
212   * @deprecated since 6.3. This feature is not supported anymore
213   * @see <a href="https://jira.sonarsource.com/browse/SONAR-8208">SONAR-8208/a>
214   */
215  @Deprecated
216  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
217
218  /**
219   * @since 3.6
220   * @deprecated since 5.4. This feature is not supported anymore. See http://jira.sonarsource.com/browse/SONAR-7219
221   */
222  @Deprecated
223  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
224
225  String SERVER_ID = "sonar.core.id";
226
227  // format is yyyy-MM-dd'T'HH:mm:ssZ
228  String SERVER_STARTTIME = "sonar.core.startTime";
229
230  /**
231   * This property defines the SonarQubeServer base url, such as <i>http://yourhost.yourdomain/sonar</i>.
232   * When this property is not set, the base url of the SonarQube server is provided by {@link Server#getURL()}.
233   *
234   * @since 2.10
235   */
236  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
237
238  /**
239   * @see #SERVER_BASE_URL
240   * @since 2.10
241   * @deprecated since 5.6. This constant default value is incorrect if a host and/or a port and/or a context have been configured.
242   *             The correct default value when {@link #SERVER_BASE_URL} is not set is provided by {@link Server#getURL()}.
243   */
244  @Deprecated
245  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
246
247  /* CPD */
248  String CPD_PLUGIN = "cpd";
249
250  /**
251   * @since 2.11
252   */
253  String CPD_CROSS_PROJECT = "sonar.cpd.cross_project";
254
255  /**
256   * @see #CPD_CROSS_PROJECT
257   * @since 2.11
258   */
259  boolean CPD_CROSS_PROJECT_DEFAULT_VALUE = false;
260
261  /**
262   * @since 3.5
263   */
264  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
265
266  /* Design */
267
268  /**
269   * Indicates whether Java bytecode analysis should be skipped.
270   *
271   * @since 2.0
272   */
273  String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
274  boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
275
276  /**
277   * Indicates whether Package Design Analysis should be skipped.
278   *
279   * @since 2.9
280   */
281  String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
282  boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
283
284  /* Google Analytics */
285  String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
286  String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
287
288  /**
289   * @since 2.11
290   */
291  String ORGANISATION = "sonar.organisation";
292
293  /**
294   * @since 2.11
295   */
296  String PERMANENT_SERVER_ID = "sonar.server_id";
297
298  /**
299   * @since 2.11
300   */
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
515}