/* eslint-disable camelcase */ const { merge } = require('webpack-merge') const { VueLoaderPlugin } = require('vue-loader') const BabelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except') const path = require('path') const accessibility = require('./apps/accessibility/webpack') const comments = require('./apps/comments/webpack') const core = require('./core/webpack') const dashboard = require('./apps/dashboard/webpack') const files = require('./apps/files/webpack') const files_sharing = require('./apps/files_sharing/webpack') const files_trashbin = require('./apps/files_trashbin/webpack') const files_versions = require('./apps/files_versions/webpack') const oauth2 = require('./apps/oauth2/webpack') const settings = require('./apps/settings/webpack') const systemtags = require('./apps/systemtags/webpack') const user_status = require('./apps/user_status/webpack') const weather_status = require('./apps/weather_status/webpack') const twofactor_backupscodes = require('./apps/twofactor_backupcodes/webpack') const updatenotification = require('./apps/updatenotification/webpack') const workflowengine = require('./apps/workflowengine/webpack') const modules = { accessibility, comments, core, dashboard, files, files_sharing, files_trashbin, files_versions, oauth2, settings, systemtags, user_status, weather_status, twofactor_backupscodes, updatenotification, workflowengine } const modulesToBuild = () => { const MODULE = process.env.MODULE if (MODULE) { if (!modules[MODULE]) { throw new Error(`No module "${MODULE}" found`) } return [ modules[MODULE] ] } return Object.values(modules) } module.exports = [] .concat( ...modulesToBuild() ) .map(config => merge({ module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'], }, { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'], }, { test: /\.(js|vue)$/, loader: 'eslint-loader', // no checks against vendors, modules or handlebar compiled files exclude: /node_modules|vendor|templates\.js/, enforce: 'pre', options: { // we cannot simply use the eslint binary as we // don't want to parse all the js files so let's // use it from within webpack and only check // against our compiled files fix: process.env.ESLINT_FIX === 'true', }, }, { test: /\.vue$/, loader: 'vue-loader', exclude: BabelLoaderExcludeNodeModulesExcept([ 'vue-material-design-icons', ]), }, { test: /\.js$/, loader: 'babel-loader', // automatically detect necessary packages to // transpile in the node_modules folder exclude: BabelLoaderExcludeNodeModulesExcept([ '@nextcloud/dialogs', '@nextcloud/event-bus', '@nextcloud/vue-dashboard', 'davclient.js', 'nextcloud-vue-collections', 'p-finally', 'p-limit', 'p-locate', 'p-queue', 'p-timeout', 'p-try', 'semver', 'striptags', 'toastify-js', 'v-tooltip', ]), }, { test: /\.(png|jpg|gif)$/, loader: 'url-loader', options: { name: '[name].[ext]?[hash]', limit: 8192, }, }, { test: /\.handlebars/, loader: 'handlebars-loader', query: { extensions: '.handlebars', }, }, ], }, plugins: [new VueLoaderPlugin()], resolve: { alias: { OC: path.resolve(__dirname, './core/src/OC'), OCA: path.resolve(__dirname, './core/src/OCA'), // make sure to use the handlebar runtime when importing handlebars: 'handlebars/runtime', }, extensions: ['*', '.js', '.vue'], symlinks: false, }, }, config)) n value='appStoreCacheFolder'>appStoreCacheFolder Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/IAppConfig.php
blob: 2f268185e620f07c1eefd7476f41396eaef24db9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/**
 * @copyright Copyright (c) 2016, ownCloud, Inc.
 *
 * @author Bart Visscher <bartv@thisnet.nl>
 * @author Joas Schilling <coding@schilljs.com>
 * @author Morris Jobke <hey@morrisjobke.de>
 * @author Robin Appelman <robin@icewind.nl>
 * @author Robin McCorkell <robin@mccorkell.me.uk>
 *
 * @license AGPL-3.0
 *
 * This code is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License, version 3,
 * along with this program.  If not, see <http://www.gnu.org/licenses/>
 *
 */
namespace OCP;

/**
 * This class provides an easy way for apps to store config values in the
 * database.
 * @since 7.0.0
 */
interface IAppConfig {
	/**
	 * check if a key is set in the appconfig
	 * @param string $app
	 * @param string $key
	 * @return bool
	 * @since 7.0.0
	 */
	public function hasKey($app, $key);

	/**
	 * get multiply values, either the app or key can be used as wildcard by setting it to false
	 *
	 * @param string|false $key
	 * @param string|false $app
	 * @return array|false
	 * @since 7.0.0
	 */
	public function getValues($app, $key);

	/**
	 * get all values of the app or and filters out sensitive data
	 *
	 * @param string $app
	 * @return array
	 * @since 12.0.0
	 */
	public function getFilteredValues($app);

	/**
	 * Get all apps using the config
	 * @return array an array of app ids
	 *
	 * This function returns a list of all apps that have at least one
	 * entry in the appconfig table.
	 * @since 7.0.0
	 */
	public function getApps();
}