๐ช MarketPlace/AppStore integration
See the Frontend development document to get going.
:convenience_store: MarketPlace integration
Home Page: https://marketplace.owncloud.com
License: GNU Affero General Public License v3.0
๐ช MarketPlace/AppStore integration
See the Frontend development document to get going.
I suggest that market::install
and the UI automatically enable the app, it's much more intuitive.
In the event that an admin wants to install without enabling, if that's really needed, we could add an option market::install someapp --no-enable
@DeepDiver1975 @SergioBertolinSG @VicDeo thoughts ?
occ market:install --local path/to/tarball.tar.gz
or
occ market:upgrade --local path/to/tarball.tar.gz
Not sure if we have this already in core, please look into it.
Goal is to avoid surprises and be able to know before the upgrade whether the market apps will work with the new version. For this, need to fetch the metadata of the apps for the next OC version.
If apps not compatible, display a warning about these that say they will be disabled and not available.
The admin can then decide to either upgrade later once these apps are available or skip the warning.
after installing /apps gets called 10 times with the same result. Reduce to one request
Rename "App-Zusammenstellungen" to "Bundles"
App detail page: description is not shown. Only summary is displayed.
{"error":true,"message":"An exception occurred while executing 'CREATE TABLE
oc_ldap_user_mapping (
ldap_dnVARCHAR(255) DEFAULT '' NOT NULL,
owncloud_nameVARCHAR(255) DEFAULT '' NOT NULL,
directory_uuid VARCHAR(255) DEFAULT '' NOT NULL, UNIQUE INDEX ldap_dn_users (
ldap_dn), PRIMARY KEY(
owncloud_name)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ENGINE = InnoDB ROW_FORMAT = compressed':\n\nSQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oc_ldap_user_mapping' already exists"}
@hurradieweltgehtunter please share concept here.
Replace the confusing greyed out buttons on an app page that was already installed with "Disable" and/or "Uninstall" buttons.
Running occ market:upgrade
without any parameters should return:
A) if it supposed to try to upload all apps:
NameofTheApp: No update available
B) If it supposed that it needed to write an appID as parameter:
No appId or path to a local package specified. Nothing to do.
If you already installed a app and you try to install it again the API responds with a 500 error page instead of a proper JSON response with a better HTTP error code.
/cc @IljaN @DeepDiver1975
App enabled properly.
Internal server error.
{"reqId":"6OKjs4ULe7a6l47pujXB","level":3,"time":"2017-04-24T13:57:03+00:00","remoteAddr":"127.0.0.1","user":"admin","app":"index","method":"GET","url":"\/owncloud\/index.php\/apps\/market\/apps","message":"Exception: {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\TableNotFoundException\",\"Message\":\"An exception occurred while executing 'SELECT m.`group_id`, m.`user_id`, m.`role`, g.`uri`, g.`display_name` FROM `oc_custom_group_member` m, `oc_custom_group` g WHERE (g.`group_id` = m.`group_id`) AND (`user_id` = ?) ORDER BY m.`group_id` ASC' with params [\\\"admin\\\"]:\\n\\nSQLSTATE[42S02]: Base table or view not found: 1146 Table 'owncloud.oc_custom_group_member' doesn't exist\",\"Code\":0,\"Trace\":\"#0 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(128): Doctrine\\\\DBAL\\\\Driver\\\\AbstractMySQLDriver->convertException('An exception oc...', Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOException))\\n#1 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(855): Doctrine\\\\DBAL\\\\DBALException::driverExceptionDuringQuery(Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOMySql\\\\Driver), Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOException), 'SELECT m.`group...', Array)\\n#2 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(190): Doctrine\\\\DBAL\\\\Connection->executeQuery('SELECT m.`group...', Array, Array, NULL)\\n#3 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(206): OC\\\\DB\\\\Connection->executeQuery('SELECT m.`group...', Array, Array)\\n#4 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/customgroups\\\/lib\\\/CustomGroupsDatabaseHandler.php(128): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/customgroups\\\/lib\\\/CustomGroupsBackend.php(82): OCA\\\\CustomGroups\\\\CustomGroupsDatabaseHandler->getUserMemberships('admin', NULL)\\n#7 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Manager.php(300): OCA\\\\CustomGroups\\\\CustomGroupsBackend->getUserGroups('admin')\\n#8 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/legacy\\\/util.php(249): OC\\\\Group\\\\Manager->getUserIdGroups('admin')\\n#9 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/base.php(909): OC_Util::setupFS()\\n#10 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/index.php(49): OC::handleRequest()\\n#11 {main}\",\"File\":\"\\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/AbstractMySQLDriver.php\",\"Line\":53}"}
The DB creation migrations didn't run correctly.
Note that if you redo the same steps but keep the "customgroups" folder, then it will work fine.
Happens fairly consistently.
@SergioBertolinSG I remember you observed this once.
Recently, while attempting to report an issue about the Custom Groups marketplace application, it would have been handy to see the application's version information, when viewing the details of the application from the market integration within ownCloud (below), instead of having to get it from the marketplace.
Can the version be added to the app's meta information, alongside its category (or somewhere else, nearby) please?
Contacts is installed.
It cannot be installed.
Operating system:
Ubuntu 14.04
Web server:
Apache
Database:
MySQL
PHP version:
7.0
ownCloud version: (see ownCloud admin page)
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.0.7","versionstring":"10.0.0 RC1","edition":"Community","productname":"ownCloud"}
Updated from an older ownCloud or fresh install:
Fresh
The content of config/config.php:
Are you using external storage, if yes which one: local/smb/sftp/...
No.
Are you using encryption:
No
Logs
{"reqId":"EqhiFDfLNd9ZXs1g8U12","level":3,"time":"2017-04-21T06:57:41+00:00","remoteAddr":"127.0.0.1","user":"ser","app":"PHP","method":"POST","url":"\/tarball_20-04-17\/index.php\/apps\/market\/apps\/contacts\/install","message":"Undefined index: appdata at \/var\/www\/html\/tarball_20-04-17\/lib\/private\/Installer.php#336"}
Browser
Firefox
Logs
Steps
Current behaviour:
Nothing happens in the UI. It doesn't tell if the installation is finished, ok or what has happened
if you click the install button again there is an exception in the logs saying that the app is already installed but nothing in the ui.
Expected behaviour
The UI tells you that the app has been installed correctly and the install button is no longer available to be pressed again.
Maybe change the install button for an uninstall button.
We need a new route for single app details โฆ as in: /app/{appId}/
.
API returns an empty release
attribute for installed apps, but version# and license should remain for installed apps as well!
The cache for the marketplace API calls never gets filled because it always returns the empty cache value:
if ($this->cacheFactory->isAvailable()) {
$cache = $this->cacheFactory->create('ocmp');
$data = $cache->get($key);
return json_decode($data, true);
}
The market UI also shows already installed apps in the main list with no visual distinction
OOTH Running
sudo -u www-data ./occ market:list
it shows all the apps. it would be great to show only the not installed/update available ones.
All apps (except for "twofactor_totp") return an empty array instead of false for the updateInfo
attribute.
Please always return false if there is no info.
I gave this more thought and changed the (in hindsight not so bright) approach I had before to a more flexible and professional way of doing JSON API. I changed a big part of the text so it won't read as fluent as it did before โฆ still, it gets my point across.
Currently, there are two routes for listing apps and bundles available.
โฆ/api/apps
returns all available apps/themes and their respective details in a single list.
๐ PROS:
๐ CONS:
The same goes for โฆ/api/bundles
since the bundle also contains all detail data for the apps it contains and falls into the same trap as apps.
I overhauled the apps and bundles API in the following two pages to minimse loading times and allow for future features such as lazy- and partial-loading, and overall fast app views.
Method: GET
Route: /apps
allow for a simple query to fetch filtered data.
โฆ/api/apps?filter[type]=app&page=1&limit=5
Returns the first five apps in the database.
โฆ/api/apps?filter[type]=apps&filter[downloads]=true&sort[downloads]=desc&limit=10
Returns the top 10 downloaded apps.
โฆ/api/apps/contacts
Is guess you know what that does. Aaaaand it's already implemented :-)
Basing the API on the conventions and format shown on by json:api and using it throughout the ownCloud Project, we could faster agree on, code and use JSON APIs all over the place. There are many PHP server-libraries already available.
Let's make JSON APIs future-proof and flexible.
~/temp/owncloud-10.0.0RC4/apps/market/js
% grep -re checkout *
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/components/Rating.vue"
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/App.vue"
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/components/Details.vue"
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/components/List.vue"
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/components/Navigation.vue"
Component.options.__file = "/home/sign/administration-internal/release-scripts/temp-checkout473751/market/src/components/Tile.vue"
Strangely the tarball works on one instance and the market app loads properly.
But in another instance I get JS errors:
@felixheidecke please fix the absolute paths issue. I hope this won't require a full retesting of the app.
I'll try and find out why one instance works fine but not the other.
Here is how the core update must be work when running occ upgrade
This should already properly cover both unbundling and future app upgrades.
@VicDeo can you synergize the PRs to make them behave as per the steps above ?
cc @DeepDiver1975 @butonic as discussed
@DeepDiver1975 who can take care of this ?
cc @pmaier1
occ upgrade
Contacts appears
Nothing changes, same list as before.
Workaround is not possible: go to the "Apps" page. See that "Contacts" is not compatible, cannot enable, install or upgrade.
The only way is to manually download the tarball.
It is also likely that some people had older apps that they had installed and disabled. They need to be able to upgrade those too even when disabled.
Note that once owncloud/core#27711 is merged the update process will attempt upgrading the app if still enabled, but if it fails for whatever reason (offline or marketplace not available), then the user will find themselves in the situation described here: app is disabled, want to reenable but not possible.
It still sucks that core fails when an image is missing (other issue...)
Here with the market:
Getting this:
{"reqId":"4a+Atud5UNNMTXyuZNu6","remoteAddr":"127.0.0.1","app":"index","message":"Exception: {\"Exception\":\"RuntimeException\",\"Message\":\"image not found: image:market.svg webroot:\\\/owncloud serverroot:\\\/srv\\\/www\\\/htdocs\\\/owncloud\",\"Code\":0,\"Trace\":\"
#0 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/market\\\/lib\\\/Application.php(49): OC\\\\URLGenerator->imagePath('market', 'market.svg')\\n
#1 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/NavigationManager.php(63): OCA\\\\Market\\\\Application->OCA\\\\Market\\\\{closure}()\\n
#2 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/legacy\\\/app.php(713): OC\\\\NavigationManager->getAll()\\n
#3 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/TemplateLayout.php(83): OC_App::getNavigation()\\n
#4 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/legacy\\\/template.php(225): OC\\\\TemplateLayout->__construct('user', 'settings')\\n
#5 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/Template\\\/Base.php(131): OC_Template->fetchPage()\\n
#6 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/settings\\\/admin.php(263): OC\\\\Template\\\\Base->printPage()\\n
#7 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Route.php(154) : runtime-created function(1): require_once('\\\/srv\\\/www\\\/htdocs...')\\n
#8 [internal function]: __lambda_func(Array)\\n
#9 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(299): call_user_func('\\\\x00lambda_1291', Array)\\n
#10 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/base.php(894): OC\\\\Route\\\\Router->match('\\\/settings\\\/admin')\\n
#11 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/index.php(46): OC::handleRequest()\\n
#12 {main}\",\"File\":\"\\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/private\\\/URLGenerator.php\",\"Line\":201}","level":3,"time":"2016-11-14T16:31:26+00:00","method":"GET","url":"\/owncloud\/index.php\/settings\/admin","user":"admin"}
{"reqId":"lwzaghmUlKY3y0WpwK7i","remoteAddr":"127.0.0.1","app":"webdav","message":"Exception: {\"Message\":\"HTTP\\\/1.1 401 CSRF check not passed.\",\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\NotAuthenticated\",\"Code\":0,\"Trace\":\"#0 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Auth.php(146): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Auth->auth(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#1 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Auth\\\/Plugin.php(202): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Auth->check(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#2 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Auth\\\/Plugin.php(150): Sabre\\\\DAV\\\\Auth\\\\Plugin->check(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#3 [internal function]: Sabre\\\\DAV\\\\Auth\\\\Plugin->beforeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#5 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(466): Sabre\\\\Event\\\\EventEmitter->emit('beforeMethod', Array)\\n#6 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#7 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v1\\\/webdav.php(57): Sabre\\\\DAV\\\\Server->exec()\\n#8 \\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/remote.php(164): require_once('\\\/srv\\\/www\\\/htdocs...')\\n#9 {main}\",\"File\":\"\\\/srv\\\/www\\\/htdocs\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Auth.php\",\"Line\":211,\"User\":\"admin\"}","level":0,"time":"2016-11-14T16:31:27+00:00","method":"PROPFIND","url":"\/owncloud\/remote.php\/webdav","user":"admin"}
and OC is not usable as the web page doesn't open.
php5-5.6.27-355.1.x86_64
apache2-2.4.16-15.1.x86_64
market
OCC commandsStill able to run commands, install apps, update apps, etc.
Commands not available.
On offline instances we expect admins to use tarballs to update apps, however in this "pending update" state the convenience command "occ market:install" with tarball is not available.
We should make this one available.
Workaround is to manually extract the tarball.
Maybe we'll need new info.xml settings: "available in maintenance mode" and "available even when updates are pending"
We should display the number of apps per category, but instead of calculating this on the frontend it should be much more performant to calculate that on the server-side and deliver it as part of the JSON payload to the frontend.
In the future we will want to move more and more bundled apps to the market.
The problem with this is that when the user updates core (tarball/updater/distro package), an app that was present before on the filesystem is now missing because it's not in the bundle any more.
Some apps MUST be enabled at occ upgrade
time especially ones with user backends to make sure that all users get covered by repair steps.
So the goal is to have the market hook into the upgrade process and check which app is market as enabled in oc_appconfig
but where the code is missing. For the missing apps, install the market version of these apps.
The challenge will likely be that such apps have no OCS ID currently, so we might need to bundle a hard-coded list of apps that we knew were bundled but aren't any more in a way that the market can find and reinstall them.
Raised here instead of updater because I think this could also affect tarball users.
@DeepDiver1975 @VicDeo please comment
When installing an app using market app coming from a tarball, we can see the logs as output:
./occ market:install -l customgroups.tar.gz
{"reqId":"VS8Z9IAI7MmS7JsqFgSj","level":3,"time":"2017-04-21T07:41:07+00:00","remoteAddr":"","user":"--","app":"PHP","method":"--","url":"--","message":"Undefined index: appdata at \/var\/www\/html\/tarball_20-04-17\/lib\/private\/Installer.php#336"}
customgroups: Installing new app from customgroups.tar.gz
{"reqId":"VS8Z9IAI7MmS7JsqFgSj","level":3,"time":"2017-04-21T07:41:07+00:00","remoteAddr":"","user":"--","app":"PHP","method":"--","url":"--","message":"Undefined index: appdata at \/var\/www\/html\/tarball_20-04-17\/lib\/private\/Installer.php#336"}
customgroups: App installed.
{"reqId":"VS8Z9IAI7MmS7JsqFgSj","level":3,"time":"2017-04-21T07:41:07+00:00","remoteAddr":"","user":"--","app":"PHP","method":"--","url":"--","message":"chmod(): Operation not permitted at \/var\/www\/html\/tarball_20-04-17\/lib\/private\/Log\/Owncloud.php#119"}
This command should show information in a nicer way.
{"reqId":"WR2KhH8AAQEAADDMg5kAAAAO","level":3,"time":"2017-05-18T11:50:31+00:00","remoteAddr":"91.45.217.39","user":"John","app":"PHP","method":"POST","url":"\/index.php\/apps\/market\/apps\/activity\/update","message":"mkdir(): No such file or directory at \/var\/www\/owncloud\/lib\/private\/legacy\/helper.php#183"}
configreport:
{
"basic": {
"license key": "",
"date": "Thu, 18 May 2017 12:00:18 +0000",
"ownCloud version": "10.0.0.12",
"ownCloud version string": "10.0.0",
"ownCloud edition": "Community",
"server OS": "Linux",
"server OS version": "Linux jonaka.de 4.4.38-std-1 #1 SMP Mon Dec 12 10:45:29 UTC 2016 x86_64",
"server SAPI": "apache2handler",
"webserver version": "Apache",
"hostname": "cloud.jonaka.de",
"user count": 1,
"user directories": 1,
"logged-in user": "John"
},
"config": {
"instanceid": "oce3lm9qjr1f",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"cloud.jonaka.de"
],
"datadirectory": "\/var\/owncloud-data",
"overwrite.cli.url": "https:\/\/cloud.jonaka.de",
"dbtype": "mysql",
"version": "10.0.0.12",
"dbname": "owncloud",
"dbhost": "localhost",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"logtimezone": "UTC",
"installed": true,
"maintenance": false
},
"integritychecker": {
"passing": true,
"enabled": true,
"result": []
},
"core": {
"OC_Channel": "production",
"backgroundjobs_mode": "cron",
"enable_external_storage": "yes",
"installedat": "1493972964.0963",
"lastcron": "1495108803",
"lastupdateResult": "[]",
"lastupdatedat": "1495108732",
"public_files": "files_sharing\/public.php",
"public_webdav": "dav\/appinfo\/v1\/publicwebdav.php"
},
"apps": [
{
"id": "files_pdfviewer",
"name": "PDF Viewer",
"description": "This application integrates the PDF.js library into ownCloud. Using this application users can view their PDF files online without the need to download the file.\n\nWhen this application is enabled publicly shared PDF documents will also get shown in the PDF Viewer instead of only showing a single static snapshot of the document. The PDF viewer requires a modern browser and will not work with Microsoft\u00ae Internet Explorer\u00ae versions below 9.\n\nPDF.js is a JavaScript library developed by Mozilla, you can learn more about the PDF.js project at https:\/\/mozilla.github.io\/pdf.js\/",
"licence": "AGPL",
"author": "Thomas M\u00fcller, Lukas Reschke",
"version": "0.8.1",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"shipped": "true",
"default_enable": "",
"documentation": {
"user": "https:\/\/doc.owncloud.org\/missing",
"admin": "https:\/\/doc.owncloud.org\/missing",
"developer": "https:\/\/doc.owncloud.org\/missing"
},
"website": "https:\/\/github.com\/owncloud\/files_pdfviewer",
"bugs": "https:\/\/github.com\/owncloud\/files_pdfviewer\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/files_pdfviewer.git"
},
"ocsid": "166049",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_pdfviewer\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.8.1",
"ocsid": "166049",
"signed": "true",
"types": ""
}
},
{
"id": "federation",
"name": "Federation",
"description": "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing.",
"licence": "AGPL",
"author": "Bjoern Schiessle",
"version": "0.1.0",
"namespace": "Federation",
"category": "other",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"default_enable": "",
"types": [
"authentication"
],
"background-jobs": {
"job": "OCA\\Federation\\SyncJob"
},
"commands": {
"command": "OCA\\Federation\\Command\\SyncFederationAddressBooks"
},
"settings": {
"admin": "OCA\\Federation\\Panels\\Admin"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/federation\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.1.0",
"types": "authentication"
}
},
{
"id": "files_texteditor",
"name": "Text Editor",
"description": "This application enables ownCloud users to open, save and edit text files in the web browser. If enabled, an entry in the New button at the top of the web browser the Text file entry appears. When clicked, a new text file opens in the browser and the file can be saved into the current ownCloud directory. Further, when a text file is clicked in the web browser, it will be opened and editable. If the privileges allow, a user can also edit shared files and save these changes back into the web browser. More information is available in the Text Editor documentation.",
"licence": "AGPL",
"author": "Tom Needham, Bj\u00f6rn Schie\u00dfle",
"version": "2.1",
"shipped": "true",
"default_enable": "",
"documentation": {
"user": "https:\/\/github.com\/owncloud\/files_texteditor\/blob\/master\/README.md",
"admin": "https:\/\/github.com\/owncloud\/files_texteditor\/blob\/master\/README.md",
"developer": "https:\/\/github.com\/owncloud\/files_texteditor\/blob\/master\/README.md"
},
"website": "https:\/\/github.com\/owncloud\/files_texteditor",
"bugs": "https:\/\/github.com\/owncloud\/files_texteditor\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/files_texteditor.git"
},
"ocsid": "166051",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_texteditor\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "2.1",
"ocsid": "166051",
"signed": "true",
"types": ""
}
},
{
"id": "gpxpod",
"name": "GpxPod",
"description": "# GpxPod Owncloud application\n\nThis app's purpose is to display gpx, kml and tcx files collections, view elevation profiles and tracks stats, filter tracks, color tracks by speed or elevation and compare divergent parts of similar tracks.\n\nIf you want to help to translate this app in your language, take the english=>french files in \"l10n\" directory as examples.\n\nGpxPod :\n\n* can display gpx\/kml\/tcx\/igc\/fit files anywhere in your files, files shared with you, files in folders shared with you. kml, tcx, igc, fit files will be displayed only if **GpsBabel** is found on the server system. * supports metric and english measure system * draws elevation or speed interactive chart * displays geotagged pictures found in selected directory * generates public links pointing to a track\/folder. This link can be used if the file\/folder is shared by public link * is translated in French, German and Russian * can correct elevations for entire folders or specific track if SRTM.py (gpxelevations) is found on the server's system * can make global comparison of multiple tracks * can make visual pair comparison of divergent parts of similar tracks * allows to add personal map tile servers * saves\/restores user option values * allow user to manually set track line colors * detects browser timezone to correctly display dates and allows user to manually select another timezone * loads extra waypoint symbols from GpxEdit if installed * works with encrypted data folder (server side encryption) * proudly uses Leaflet with lots of plugins to display the map * is compatible with SQLite, MySQL and PostgreSQL databases * adds possibility to view .gpx files directly from the \"Files\" app\n\nThis app is tested on Owncloud 9 with Firefox and Chromium.\n\nThis app is under development.\n\nLink to Owncloud application website : https:\/\/apps.owncloud.com\/content\/show.php\/GpxPod+again?content=174733\n\n## Donation\n\nI develop this app during my free time. You can make a donation to me on Paypal. [There is a donation link HERE](https:\/\/gitlab.com\/eneiluj\/gpxpod-oc#donation) (you don't need a paypal account)\n\n## Install\n\nSee the [AdminDoc](https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/wikis\/admindoc) for more details (allow SRTM elevation correction, integration in \"Files\" app, kml compatibility...)\n\nThere are no more python dependencies ! (except for extra features like elevations correction)\n\nPut gpxpod directory in the Owncloud apps to install. There are several ways to do that :\n\n### Clone the git repository\n\n``` cd \/path\/to\/owncloud\/apps git clone https:\/\/gitlab.com\/eneiluj\/gpxpod-oc.git gpxpod ```\n\n### Download from https:\/\/apps.owncloud.com\n\nExtract gpxpod archive you just downloaded from the website : ``` cd \/path\/to\/owncloud\/apps tar xvf gpxpod-x.x.x.tar.gz ```\n\n## Known issues\n\n* bad management of file names including simple or double quotes * _WARNING_, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n",
"licence": "AGPL",
"summary": "Display, analyse, compare and share gpx tracks",
"author": [
"Julien Veyssier",
"Fritz Kleinschroth",
"Slipeer"
],
"version": "2.1.2",
"namespace": "GpxPod",
"documentation": {
"user": "https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/wikis\/userdoc",
"admin": "https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/wikis\/admindoc",
"developer": "https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/wikis\/devdoc"
},
"category": [
"tool",
"multimedia"
],
"website": "https:\/\/gitlab.com\/eneiluj\/gpxpod-oc",
"bugs": "https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/issues",
"screenshot": [
"https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/uploads\/717322462e1143e477a9cf41d7498744\/screen1.jpg",
"https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/uploads\/edb4334127d054f017e656d964efcc66\/screen2.jpg",
"https:\/\/gitlab.com\/eneiluj\/gpxpod-oc\/uploads\/0ffda108daeede88dcd432a1021d21e4\/screen3.jpg"
],
"dependencies": {
"database": [
{
"@attributes": {
"min-version": "9.4"
},
"@value": "pgsql"
},
"sqlite",
{
"@attributes": {
"min-version": "5.5"
},
"@value": "mysql"
}
],
"php": {
"@attributes": {
"min-version": "5.6"
}
},
"owncloud": {
"@attributes": {
"min-version": "9.0",
"max-version": "10.9"
}
}
},
"ocsid": "174733",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": false,
"level": 100,
"removable": true,
"preview": "\/apps\/gpxpod\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "2.1.2",
"signed": "true",
"types": ""
}
},
{
"id": "market",
"name": "Market",
"description": "ownCloud marketplace integration and app management",
"licence": "AGPL",
"author": "Thomas M\u00fcller",
"version": "0.1.0",
"default_enable": "",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"background-jobs": {
"job": "OCA\\Market\\SyncJob"
},
"commands": [
"OCA\\Market\\Command\\InstallApp",
"OCA\\Market\\Command\\ListApps",
"OCA\\Market\\Command\\UpgradeApp"
],
"navigation": {
"@attributes": {
"role": "admin"
},
"route": "market.page.index",
"order": "100"
},
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/market\/img\/market.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.1.0",
"types": ""
}
},
{
"id": "external",
"name": "External Sites",
"description": "This application allows an admin to add a link in the ownCloud web interface Apps menu that points to an external website. By simply entering the URL and the name for the external site, icon appears. When this icon is clicked by a user, the external website appears in the ownCloud frame. For the user, this external site appears as if it is part of ownCloud but, in fact, this can be any external URL.\n\nNote that the External Site link must use the same type of encryption as provided by ownCloud. In other words, if ownCloud is hosted on HTTPS, the link in the external site must also be HTTPS. The same is also true for HTTP. More information is available in the External Sites documentation.",
"licence": "AGPL",
"author": "Frank Karlitschek",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"shipped": "true",
"version": "1.2",
"ocsid": "166046",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/external\/img\/external.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "1.2",
"ocsid": "166046",
"types": ""
}
},
{
"id": "provisioning_api",
"name": "Provisioning API",
"description": "This application enables a set of APIs that external systems can use to create, edit, delete and query user attributes, query, set and remove groups, set quota and query total storage used in ownCloud. Group admin users can also query ownCloud and perform the same functions as an admin for groups they manage. The API also enables an admin to query for active ownCloud applications, application info, and to enable or disable an app remotely. Once the app is enabled, http requests can be used via a Basic Auth header to perform any of the functions listed above. More information is available in the Provisioning API documentation, including example calls and server responses.",
"licence": "AGPL",
"author": "Tom Needham",
"default_enable": "",
"documentation": {
"admin": "https:\/\/doc.owncloud.org\/server\/10.0\/go.php?to=admin-provisioning-api"
},
"version": "0.5.0",
"namespace": "Provisioning_API",
"types": [
"prevent_group_restriction"
],
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/provisioning_api\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.5.0",
"types": "prevent_group_restriction"
}
},
{
"id": "customgroups",
"name": "Custom groups",
"namespace": "CustomGroups",
"description": "Let users create and manage custom groups for sharing.",
"website": "https:\/\/github.com\/owncloud\/customgroups\/",
"bugs": "https:\/\/github.com\/owncloud\/customgroups\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "http:\/\/github.com\/owncloud\/customgroups.git"
},
"licence": "AGPL",
"author": "Vincent Petry",
"version": "0.2",
"category": "collaboration",
"screenshot": "https:\/\/github.com\/owncloud\/screenshots\/raw\/a28a6cf38ed8d18d98a02fb7ecac82d1a264a791\/customgroups\/customgroups-screenshot.png",
"types": [
"authentication",
"dav"
],
"use-migrations": "true",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"sabre": {
"plugins": {
"plugin": "OCA\\CustomGroups\\Dav\\CustomGroupsPlugin"
},
"collections": {
"collection": "OCA\\CustomGroups\\Dav\\RootCollection"
}
},
"settings": {
"personal": "OCA\\CustomGroups\\SettingsPanel"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": false,
"level": 100,
"removable": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.2",
"signed": "true",
"types": "authentication,dav"
}
},
{
"id": "gallery",
"name": "Gallery",
"description": "Media gallery for ownCloud and Nextcloud with the following features:\n\n- Support for large selection of media types (depending on server setup)\n\n- Large, zoomable previews\n\n- Sort images by name or date\n\n- Per album description and copyright statement\n\n- A la carte features\n\n- Image download straight from the slideshow or the gallery\n\n- Seamlessly jump between the gallery and the files view\n\n- Ignore folders containing a \".nomedia\" file\n\n- Native SVG support\n\n- Mobile support\n\nProvides a dedicated view of all images in a grid, adds image viewing capabilities to the files app and adds a gallery view to public links. Compatible with Firefox, Chrome and Internet Explorer 9+",
"licence": "AGPL",
"author": "Olivier Paroz, Robin Appelman",
"version": "15.0.0",
"namespace": "Gallery",
"category": "Multimedia",
"dependencies": {
"php": {
"@attributes": {
"min-version": "5.4",
"max-version": "7"
}
},
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"default_enable": "",
"shipped": "true",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/gallery\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "15.0.0",
"signed": "true",
"types": ""
}
},
{
"id": "guests",
"name": "Guests",
"description": "Allow classifying users or contacts as guests.",
"version": "0.4.1",
"licence": "AGPL",
"author": "owncloud.org",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
},
"php": {
"@attributes": {
"min-version": "5.4"
}
}
},
"category": "collaboration",
"types": [
"authentication"
],
"settings": {
"admin": "OCA\\Guests\\Settings\\Admin"
},
"screenshot": "https:\/\/raw.githubusercontent.com\/owncloud\/screenshots\/ea949ddd1d35ea22aceb68609587c5536aeda5f6\/guests\/new_guest.png",
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": false,
"level": 100,
"removable": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.4.1",
"signed": "true",
"types": "authentication"
}
},
{
"id": "firstrunwizard",
"name": "First run wizard",
"description": "This application enables a pop-up window when a user first logs into ownCloud. This window welcomes new users to ownCloud, and contains links to the standard ownCloud desktop client, Android app, and the iOS app. The window also shows a link for accessing ownCloud via WebDAV. At any time, the first run wizard button can be opened again via the link on the personal page. The First run wizard can be customized to meet specific design goals, or to change links and messages. Create an appropriate theme following the Theming documentation, and changes to the look and feel of this Wizard are simple. More information is available in the First run wizard documentation, as well as the theming documentation.",
"licence": "AGPL",
"author": "Frank Karlitschek, Jan-Christoph Borchardt",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"version": "1.1",
"shipped": "true",
"default_enable": "",
"ocsid": "166055",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/firstrunwizard\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "1.1",
"ocsid": "166055",
"types": ""
}
},
{
"id": "systemtags",
"name": "Collaborative tags",
"description": "Collaborative tagging functionality which shares tags among users. Great for teams. (If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)",
"licence": "AGPL",
"author": "Vincent Petry",
"default_enable": "",
"version": "0.3.0",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"namespace": "SystemTags",
"types": [
"logging"
],
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"appconfig": {
"enabled": "yes",
"installed_version": "0.3.0",
"types": "logging"
}
},
{
"id": "example-theme",
"name": "Example ownCloud Theme",
"description": "This App provides the example ownCloud theme.",
"licence": "AGPL",
"author": "Philipp Schaffrath",
"version": "1.0.0",
"types": [
"theme"
],
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"namespace": "Theme",
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": false,
"internal": false,
"level": 100,
"removable": true
},
{
"id": "files_videoplayer",
"name": "Video player",
"description": "A responsive video player using a skinned version of Video.js\n\nBased on this app: https:\/\/apps.owncloud.com\/content\/show.php\/Video+Js?content=159670\n\nVideo.js: http:\/\/videojs.com\/\n\nSkin: https:\/\/github.com\/cabin\/videojs-sublime-skin",
"version": "0.9.8",
"licence": "MIT",
"author": "Bj\u00f6rn Korella",
"default_enable": "",
"documentation": {
"user": "https:\/\/github.com\/owncloud\/files_videoplayer\/blob\/master\/README.md",
"admin": "https:\/\/github.com\/owncloud\/files_videoplayer\/blob\/master\/README.md",
"developer": "https:\/\/github.com\/owncloud\/files_videoplayer\/blob\/master\/README.md"
},
"website": "https:\/\/github.com\/owncloud\/files_videoplayer",
"bugs": "https:\/\/github.com\/owncloud\/files_videoplayer\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/files_videoplayer.git"
},
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_videoplayer\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.9.8",
"types": ""
}
},
{
"id": "calendar",
"name": "Calendar",
"version": "1.4.2",
"licence": "AGPL",
"author": "Georg Ehrke, Raghu Nayyar, Bernhard Fr\u00f6hler",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "9.0",
"max-version": "10.0"
}
}
},
"description": "Calendar GUI for the server-integrated CalDAV server",
"documentation": {
"user": "http:\/\/doc.owncloud.org\/server\/9.0\/user_manual\/pim\/calendar.html"
},
"category": "productivity",
"screenshot": "https:\/\/raw.githubusercontent.com\/owncloud\/screenshots\/9d7c40b3f9694f4fabca464870524b9b962c8705\/calendar\/screenshot.png",
"website": "https:\/\/github.com\/owncloud\/calendar\/",
"bugs": "https:\/\/github.com\/owncloud\/calendar\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/calendar.git"
},
"ocsid": "168707",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": false,
"level": 100,
"removable": true,
"preview": "\/apps\/calendar\/img\/calendar.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "1.4.2",
"ocsid": "168707",
"signed": "true",
"types": ""
}
},
{
"id": "files_versions",
"name": "Versions",
"licence": "AGPL",
"author": "Frank Karlitschek, Bjoern Schiessle",
"description": "This application enables ownCloud to automatically maintain older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user\u2019s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. ownCloud then automatically manages the versions folder to ensure the user doesn\u2019t run out of Quota because of versions. In addition to the expiry of versions, ownCloud\u2019s versions app makes certain never to use more than 50% of the user\u2019s currently available free space. If stored versions exceed this limit, ownCloud will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.\n\n",
"version": "1.3.0",
"types": [
"filesystem"
],
"namespace": "Files_Versions",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"documentation": {
"user": "https:\/\/doc.owncloud.org\/server\/10.0\/go.php?to=user-versions"
},
"default_enable": "",
"background-jobs": {
"job": "OCA\\Files_Versions\\BackgroundJob\\ExpireVersions"
},
"commands": [
"OCA\\Files_Versions\\Command\\CleanUp",
"OCA\\Files_Versions\\Command\\ExpireVersions"
],
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_versions\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "1.3.0",
"types": "filesystem"
}
},
{
"id": "updatenotification",
"name": "Update notification",
"description": "Displays update notifications for ownCloud and provides the SSO for the updater.",
"licence": "AGPL",
"author": "Lukas Reschke",
"version": "0.2.1",
"namespace": "UpdateNotification",
"default_enable": "",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"background-jobs": {
"job": "OCA\\UpdateNotification\\Notification\\BackgroundJob"
},
"settings": {
"admin": "OCA\\UpdateNotification\\Controller\\AdminController"
},
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"appconfig": {
"enabled": "yes",
"installed_version": "0.2.1",
"types": ""
}
},
{
"id": "configreport",
"name": "Admin Config Report",
"description": "Generate a Config Report",
"licence": "AGPL",
"author": "owncloud.org",
"version": "0.1.1",
"namespace": "ConfigReport",
"default_enable": [
"",
""
],
"types": [
"filesystem"
],
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "9.1",
"max-version": "10.0"
}
}
},
"shipped": "true",
"commands": {
"command": "OCA\\ConfigReport\\Command\\ConfigReport"
},
"settings": {
"admin": "OCA\\ConfigReport\\AdminPanel"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"appconfig": {
"enabled": "yes",
"installed_version": "0.1.1",
"types": "filesystem"
}
},
{
"id": "comments",
"name": "Comments",
"description": "Files app plugin to add comments to files",
"licence": "AGPL",
"author": "Arthur Schiwon, Vincent Petry",
"default_enable": "",
"version": "0.3.0",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"types": [
"logging",
"dav"
],
"sabre": {
"plugins": {
"plugin": "OCA\\Comments\\Dav\\CommentsPlugin"
},
"collections": {
"collection": "OCA\\Comments\\Dav\\RootCollection"
}
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"appconfig": {
"enabled": "yes",
"installed_version": "0.3.0",
"types": "logging,dav"
}
},
{
"id": "activity",
"name": "Activity",
"description": "This application enables users to view actions related to their files in ownCloud. Once enabled, users will see a new icon \u201cActivity\u201d in their apps menu. When clicked, a new page appears for users to track the activity related to files \u2013 from new files, to deleted files, move, rename, updates and shared activity. The user can configure their individual activity settings in their personal menu. This sets the type of activity to record, as well as whether to the user sees their own activities, whether these are only available online, and whether they get an email digest on a regular basis. More information is available in the Activity documentation.",
"licence": "AGPL",
"author": "Frank Karlitschek, Joas Schilling",
"shipped": "true",
"version": "2.3.3",
"default_enable": "",
"types": [
"filesystem"
],
"use-migrations": "true",
"documentation": {
"admin": "https:\/\/doc.owncloud.org\/server\/10.0\/admin_manual\/configuration_server\/activity_configuration.html"
},
"website": "https:\/\/github.com\/owncloud\/activity\/",
"bugs": "https:\/\/github.com\/owncloud\/activity\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/activity.git"
},
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"background-jobs": [
"OCA\\Activity\\BackgroundJob\\EmailNotification",
"OCA\\Activity\\BackgroundJob\\ExpireActivities"
],
"navigation": {
"order": "1",
"route": "activity.Activities.showList"
},
"settings": {
"personal": "OCA\\Activity\\PersonalPanel"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/activity\/img\/activity.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "2.3.3",
"signed": "true",
"types": "filesystem"
}
},
{
"id": "files_antivirus",
"name": "Antivirus App for files",
"description": "This application inspects files that are uploaded to ownCloud for viruses before they are written to the ownCloud storage. If a file is identified as a virus, it is either logged or not uploaded to the server. The application relies on the underlying ClamAV virus scanning engine, which the admin points ownCloud to when configuring the application. For this app to be effective, the ClamAV virus definitions should be kept up to date. Also note that enabling this app will impact system performance as additional processing is required for every upload. More information is available in the Antivirus documentation.",
"bugs": "https:\/\/github.com\/owncloud\/files_antivirus\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "http:\/\/github.com\/owncloud\/files_antivirus.git"
},
"licence": "AGPL",
"author": "Manuel Delgado, Bart Visscher, thinksilicon.de, Victor Dubiniuk",
"version": "0.10.0.0",
"types": [
"filesystem"
],
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"ocsid": "157439",
"settings": {
"admin": "OCA\\Files_Antivirus\\AdminPanel"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": false,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_antivirus\/img\/app.svg",
"previewAsIcon": true
},
{
"id": "notifications",
"name": "Notifications",
"description": "An app that notifies the user about important events of other apps.",
"licence": "AGPL",
"author": "Joas Schilling",
"version": "0.3.0",
"types": [
"logging"
],
"default_enable": "",
"website": "https:\/\/github.com\/owncloud\/notifications",
"bugs": "https:\/\/github.com\/owncloud\/notifications\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/notifications.git"
},
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/notifications\/img\/notifications.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.3.0",
"types": "logging"
}
},
{
"id": "files_sharing",
"name": "Share Files",
"description": "This application enables users to share files within ownCloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within ownCloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of ownCloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices. Turning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the ownCloud Documentation.\n\n",
"licence": "AGPL",
"author": "Michael Gapczynski, Bjoern Schiessle",
"default_enable": "",
"version": "0.10.0",
"types": [
"filesystem"
],
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"public": {
"files": "public.php"
},
"namespace": "Files_Sharing",
"background-jobs": [
"OCA\\Files_Sharing\\DeleteOrphanedSharesJob",
"OCA\\Files_Sharing\\ExpireSharesJob"
],
"commands": {
"command": "OCA\\Files_Sharing\\Command\\CleanupRemoteStorages"
},
"info": [],
"remote": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_sharing\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.10.0",
"types": "filesystem"
}
},
{
"id": "templateeditor",
"name": "Mail Template Editor",
"description": "This application enables ownCloud to send custom emails to users. By default, ownCloud can send password reset emails, shared file and share link emails, activity stream notifications and more. By configuring an email server, admins can enable these emails to be sent. By providing an email address on their Personal page, users can receive these emails. By default, all of these emails will contain ownCloud email templates. The template editor allows admins to change email templates for emails sent by the system. While it is possible to manually change email templates within ownCloud, this app makes it far simpler by updating this via the ownCloud admin panel. More information is available in the Mail Template Editor documentation.",
"licence": "AGPL",
"author": "J\u00f6rn Dreyer",
"version": "0.1",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"shipped": "true",
"default_enable": "",
"settings": {
"admin": "OCA\\TemplateEditor\\AdminPanel"
},
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/templateeditor\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.1",
"types": ""
}
},
{
"id": "contacts",
"name": "Contacts",
"description": "The new and improved app for your Contacts.",
"licence": "AGPL",
"author": "Hendrik Leppelsack, Thomas M\u00fcller, Alexander Weidinger, Jan-Christoph Borchardt, Tom Needham",
"version": "1.5.2",
"documentation": {
"user": "https:\/\/doc.owncloud.org\/server\/10.0\/user_manual\/pim\/contacts.html",
"admin": "https:\/\/doc.owncloud.org\/server\/10.0\/admin_manual\/configuration_server\/occ_command.html?highlight=contact#dav-commands",
"developer": "https:\/\/github.com\/owncloud\/contacts\/blob\/master\/README.md"
},
"category": "collaboration",
"website": "https:\/\/github.com\/owncloud\/contacts",
"bugs": "https:\/\/github.com\/owncloud\/contacts\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/contacts.git"
},
"screenshot": "https:\/\/raw.githubusercontent.com\/owncloud\/screenshots\/760f2783b03fd26cbc920188b672f5f5efe548c0\/contacts\/contacts.png",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "9.0",
"max-version": "10.0"
}
}
},
"ocsid": "168708",
"info": [],
"remote": [],
"public": [],
"types": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": false,
"level": 100,
"removable": true,
"preview": "\/apps\/contacts\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "1.5.2",
"ocsid": "168708",
"signed": "true",
"types": ""
}
},
{
"id": "files_trashbin",
"name": "Deleted files",
"description": "This application enables users to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to their ownCloud file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days. To prevent a user from running out of disk space, the ownCloud Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, ownCloud deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation.\n\n",
"licence": "AGPL",
"author": "Bjoern Schiessle",
"default_enable": "",
"version": "0.9.0",
"types": [
"filesystem"
],
"namespace": "Files_Trashbin",
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"documentation": {
"user": "https:\/\/doc.owncloud.org\/server\/10.0\/go.php?to=user-trashbin"
},
"background-jobs": {
"job": "OCA\\Files_Trashbin\\BackgroundJob\\ExpireTrash"
},
"commands": [
"OCA\\Files_Trashbin\\Command\\CleanUp",
"OCA\\Files_Trashbin\\Command\\ExpireTrash"
],
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"two-factor-providers": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/files_trashbin\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.9.0",
"types": "filesystem"
}
},
{
"id": "encryption",
"description": "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys. The module won't touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system. Please read the documentation to know all implications before you decide to enable server-side encryption.",
"name": "Default encryption module",
"licence": "AGPL",
"author": "Bjoern Schiessle, Clark Tomlinson",
"documentation": {
"user": "https:\/\/doc.owncloud.org\/server\/10.0\/go.php?to=user-encryption",
"admin": "https:\/\/doc.owncloud.org\/server\/10.0\/go.php?to=admin-encryption"
},
"rememberlogin": "false",
"version": "1.3.0",
"types": [
"filesystem"
],
"dependencies": {
"lib": "openssl",
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"commands": [
"OCA\\Encryption\\Command\\EnableMasterKey",
"OCA\\Encryption\\Command\\MigrateKeys"
],
"settings": {
"admin": "OCA\\Encryption\\Panels\\Admin",
"personal": "OCA\\Encryption\\Panels\\Personal"
},
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"groups": null,
"active": false,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/encryption\/img\/app.svg",
"previewAsIcon": true
},
{
"id": "user_external",
"name": "External user support",
"description": "Use external user authentication methods like IMAP, SMB and FTP",
"licence": "AGPL",
"author": "Robin Appelman",
"documentation": {
"admin": "https:\/\/doc.owncloud.org\/server\/9.0\/admin_manual\/configuration_user\/user_auth_ftp_smb_imap.html"
},
"website": "https:\/\/github.com\/owncloud\/apps\/tree\/master\/user_external",
"bugs": "https:\/\/github.com\/owncloud\/apps\/issues",
"repository": {
"@attributes": {
"type": "git"
},
"@value": "https:\/\/github.com\/owncloud\/apps.git"
},
"dependencies": {
"owncloud": {
"@attributes": {
"min-version": "10.0",
"max-version": "10.0"
}
}
},
"version": "0.4",
"shipped": "true",
"types": [
"authentication",
"prelogin"
],
"ocsid": "166060",
"info": [],
"remote": [],
"public": [],
"repair-steps": {
"install": [],
"pre-migration": [],
"post-migration": [],
"live-migration": [],
"uninstall": []
},
"background-jobs": [],
"two-factor-providers": [],
"commands": [],
"groups": null,
"active": true,
"internal": true,
"level": 200,
"removable": false,
"preview": "\/apps\/user_external\/img\/app.svg",
"previewAsIcon": true,
"appconfig": {
"enabled": "yes",
"installed_version": "0.4",
"ocsid": "166060",
"types": "authentication,prelogin"
}
}
],
"phpinfo": {
"apache2handler": {
"Apache Version": "Apache",
"Apache API Version": "20120211",
"Server Administrator": "[no address given]",
"Hostname:Port": "cloud.jonaka.de:0",
"User\/Group": "www-data(33)\/33",
"Max Requests": "Per Child: 0 - Keep Alive: on - Max Per Connection: 100",
"Timeouts": "Connection: 300 - Keep-Alive: 5",
"Virtual Server": "Yes",
"Server Root": "\/etc\/apache2",
"Loaded Modules": "core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_expires mod_filter mod_headers mod_include mod_mime prefork mod_negotiation mod_php7 mod_rewrite mod_security2 mod_setenvif mod_socache_shmcb mod_ssl mod_status mod_unique_id",
"engine": "1",
"last_modified": "0",
"xbithack": "0"
},
"Apache Environment": {
"UNIQUE_ID": "WR2M0H8AAQEAADZrPMcAAAAE",
"HOME": "\/var\/www\/owncloud",
"HTTP_HOME": "\/var\/www\/owncloud",
"modHeadersAvailable": "true",
"htaccessWorking": "true",
"HTTP_AUTHORIZATION": "no value",
"HTTPS": "on",
"SSL_TLS_SNI": "cloud.jonaka.de",
"HTTP_HOST": "cloud.jonaka.de",
"HTTP_CONNECTION": "keep-alive",
"HTTP_UPGRADE_INSECURE_REQUESTS": "1",
"HTTP_USER_AGENT": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/57.0.2987.133 Safari\/537.36",
"HTTP_ACCEPT": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8",
"HTTP_DNT": "1",
"HTTP_ACCEPT_ENCODING": "gzip, deflate, sdch, br",
"HTTP_ACCEPT_LANGUAGE": "de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,tr;q=0.2",
"SERVER_SIGNATURE": "no value",
"SERVER_SOFTWARE": "Apache",
"SERVER_NAME": "cloud.jonaka.de",
"SERVER_ADDR": "10.2.38.7",
"SERVER_PORT": "443",
"REMOTE_ADDR": "91.45.217.39",
"DOCUMENT_ROOT": "\/var\/www\/owncloud",
"REQUEST_SCHEME": "https",
"CONTEXT_PREFIX": "no value",
"CONTEXT_DOCUMENT_ROOT": "\/var\/www\/owncloud",
"SERVER_ADMIN": "[no address given]",
"SCRIPT_FILENAME": "\/var\/www\/owncloud\/index.php",
"REMOTE_PORT": "55695",
"GATEWAY_INTERFACE": "CGI\/1.1",
"SERVER_PROTOCOL": "HTTP\/1.1",
"REQUEST_METHOD": "GET",
"QUERY_STRING": "no value",
"REQUEST_URI": "\/index.php\/apps\/configreport\/report",
"SCRIPT_NAME": "\/index.php",
"PATH_INFO": "\/apps\/configreport\/report",
"PATH_TRANSLATED": "\/var\/www\/owncloud\/apps\/configreport\/report"
},
"HTTP Headers Information": {
"HTTP Request": "GET \/index.php\/apps\/configreport\/report HTTP\/1.1",
"Host": "cloud.jonaka.de",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/57.0.2987.133 Safari\/537.36",
"Accept": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8",
"DNT": "1",
"Accept-Encoding": "gzip, deflate, sdch, br",
"Accept-Language": "de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,tr;q=0.2",
"Expires": "Thu, 19 Nov 1981 08:52:00 GMT",
"Cache-Control": "no-store, no-cache, must-revalidate",
"Pragma": "no-cache",
"Content-Security-Policy": "default-src self ; script-src self unsafe-eval ; style-src self unsafe-inline ; frame-src *; img-src * data: blob:; font-src self data:; media-src *; connect-src *"
},
"apcu": {
"Version": "5.1.3",
"APCu Debugging": "Disabled",
"MMAP Support": "Enabled",
"MMAP File Mask": "no value",
"Serialization Support": "php",
"Build Date": "Apr 5 2016 02:16:47",
"apc.coredump_unmap": "Off",
"apc.enable_cli": "Off",
"apc.enabled": "On",
"apc.entries_hint": "4096",
"apc.gc_ttl": "3600",
"apc.mmap_file_mask": "no value",
"apc.preload_path": "no value",
"apc.serializer": "php",
"apc.shm_segments": "1",
"apc.shm_size": "32M",
"apc.slam_defense": "On",
"apc.smart": "0",
"apc.ttl": "0",
"apc.use_request_time": "On",
"apc.writable": "\/tmp"
},
"bz2": {
"BZip2 Support": "Enabled",
"Stream Wrapper support": "compress.bzip2:\/\/",
"Stream Filter support": "bzip2.decompress, bzip2.compress",
"BZip2 Version": "1.0.6, 6-Sept-2010"
},
"calendar": {
"Calendar support": "enabled"
},
"Core": {
"PHP Version": "7.0.15-0ubuntu0.16.04.4",
"allow_url_fopen": "On",
"allow_url_include": "Off",
"arg_separator.input": "&",
"arg_separator.output": "&",
"auto_append_file": "no value",
"auto_globals_jit": "On",
"auto_prepend_file": "no value",
"browscap": "no value",
"default_charset": "UTF-8",
"default_mimetype": "text\/html",
"disable_classes": "no value",
"disable_functions": "pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,",
"display_errors": "Off",
"display_startup_errors": "Off",
"doc_root": "no value",
"docref_ext": "no value",
"docref_root": "no value",
"enable_dl": "Off",
"enable_post_data_reading": "On",
"error_append_string": "no value",
"error_log": "no value",
"error_prepend_string": "no value",
"error_reporting": [
"32767",
"22527"
],
"exit_on_timeout": "Off",
"expose_php": "Off",
"extension_dir": "\/usr\/lib\/php\/20151012",
"file_uploads": "On",
"highlight.comment": "#FF8000",
"highlight.default": "#0000BB",
"highlight.html": "#000000",
"highlight.keyword": "#007700",
"highlight.string": "#DD0000",
"html_errors": "On",
"ignore_repeated_errors": "Off",
"ignore_repeated_source": "Off",
"ignore_user_abort": "Off",
"implicit_flush": "Off",
"input_encoding": "no value",
"internal_encoding": "no value",
"log_errors": "On",
"log_errors_max_len": "1024",
"mail.add_x_header": "On",
"mail.force_extra_parameters": "no value",
"mail.log": "no value",
"max_execution_time": [
"3600",
"30"
],
"max_file_uploads": "20",
"max_input_nesting_level": "64",
"max_input_time": "60",
"max_input_vars": "1000",
"memory_limit": [
"512M",
"128M"
],
"open_basedir": "no value",
"output_buffering": [
"0",
"4096"
],
"output_encoding": "no value",
"output_handler": "no value",
"post_max_size": [
"513M",
"0"
],
"precision": "14",
"realpath_cache_size": "16K",
"realpath_cache_ttl": "120",
"register_argc_argv": "Off",
"report_memleaks": "On",
"report_zend_debug": "On",
"request_order": "GP",
"sendmail_from": "no value",
"sendmail_path": "\/usr\/sbin\/sendmail -t -i ",
"serialize_precision": "17",
"short_open_tag": "Off",
"SMTP": "localhost",
"smtp_port": "25",
"sql.safe_mode": "Off",
"sys_temp_dir": "no value",
"track_errors": "Off",
"unserialize_callback_func": "no value",
"upload_max_filesize": [
"513M",
"16G"
],
"upload_tmp_dir": "no value",
"user_dir": "no value",
"user_ini.cache_ttl": "300",
"user_ini.filename": ".user.ini",
"variables_order": "GPCS",
"xmlrpc_error_number": "0",
"xmlrpc_errors": "Off",
"zend.assertions": "-1",
"zend.detect_unicode": "On",
"zend.enable_gc": "On",
"zend.multibyte": "Off",
"zend.script_encoding": "no value"
},
"ctype": {
"ctype functions": "enabled"
},
"curl": {
"cURL support": "enabled",
"cURL Information": "7.47.0",
"Age": "3",
"Features": null,
"AsynchDNS": "Yes",
"CharConv": "No",
"Debug": "No",
"GSS-Negotiate": "No",
"IDN": "Yes",
"IPv6": "Yes",
"krb4": "No",
"Largefile": "Yes",
"libz": "Yes",
"NTLM": "Yes",
"NTLMWB": "Yes",
"SPNEGO": "Yes",
"SSL": "Yes",
"SSPI": "No",
"TLS-SRP": "Yes",
"HTTP2": "No",
"GSSAPI": "Yes",
"KERBEROS5": "Yes",
"UNIX_SOCKETS": "Yes",
"PSL": "No",
"Protocols": "dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp",
"Host": "x86_64-pc-linux-gnu",
"SSL Version": "OpenSSL\/1.0.2g",
"ZLib Version": "1.2.8"
},
"date": {
"date\/time support": "enabled",
""Olson" Timezone Database Version": "0.system",
"Timezone Database": "internal",
"Default timezone": "UTC",
"date.default_latitude": "31.7667",
"date.default_longitude": "35.2333",
"date.sunrise_zenith": "90.583333",
"date.sunset_zenith": "90.583333",
"date.timezone": "no value"
},
"dom": {
"DOM\/XML": "enabled",
"DOM\/XML API Version": "20031129",
"libxml Version": "2.9.3",
"HTML Support": "enabled",
"XPath Support": "enabled",
"XPointer Support": "enabled",
"Schema Support": "enabled",
"RelaxNG Support": "enabled"
},
"exif": {
"EXIF Support": "enabled",
"EXIF Version": "1.4 $Id: 8bdc0c8f27c2c9dd1f7551f1f9fe3ab57a06a4b1 $",
"Supported EXIF Version": "0220",
"Supported filetypes": "JPEG,TIFF",
"exif.decode_jis_intel": "JIS",
"exif.decode_jis_motorola": "JIS",
"exif.decode_unicode_intel": "UCS-2LE",
"exif.decode_unicode_motorola": "UCS-2BE",
"exif.encode_jis": "no value",
"exif.encode_unicode": "ISO-8859-15"
},
"fileinfo": {
"fileinfo support": "enabled",
"version": "1.0.5",
"libmagic": "522"
},
"filter": {
"Input Validation and Filtering": "enabled",
"Revision": "$Id: 28fcca4bfda9c9907588a64d245b49cb398249d8 $",
"filter.default": "unsafe_raw",
"filter.default_flags": "no value"
},
"ftp": {
"FTP support": "enabled",
"FTPS support": "enabled"
},
"gd": {
"GD Support": "enabled",
"GD headers Version": "2.1.1",
"GD library Version": "2.1.1",
"FreeType Support": "enabled",
"FreeType Linkage": "with freetype",
"FreeType Version": "2.6.1",
"GIF Read Support": "enabled",
"GIF Create Support": "enabled",
"JPEG Support": "enabled",
"libJPEG Version": "8",
"PNG Support": "enabled",
"libPNG Version": "1.2.54",
"WBMP Support": "enabled",
"XPM Support": "enabled",
"libXpm Version": "30411",
"XBM Support": "enabled",
"WebP Support": "enabled",
"gd.jpeg_ignore_warning": [
"1",
"0"
]
},
"gettext": {
"GetText Support": "enabled"
},
"hash": {
"hash support": "enabled",
"Hashing Engines": "md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5",
"MHASH support": "Enabled",
"MHASH API Version": "Emulated Support"
},
"iconv": {
"iconv support": "enabled",
"iconv implementation": "glibc",
"iconv library version": "2.23",
"iconv.input_encoding": "no value",
"iconv.internal_encoding": "no value",
"iconv.output_encoding": "no value"
},
"igbinary": {
"igbinary support": "enabled",
"igbinary version": "1.2.2-dev",
"igbinary APC serializer ABI": "no",
"igbinary session support": "no",
"igbinary.compact_strings": "On"
},
"json": {
"json support": "enabled",
"json version": "1.4.0"
},
"libxml": {
"libXML support": "active",
"libXML Compiled Version": "2.9.3",
"libXML Loaded Version": "20903",
"libXML streams": "enabled"
},
"mbstring": {
"Multibyte Support": "enabled",
"Multibyte string engine": "libmbfl",
"HTTP input encoding translation": "disabled",
"libmbfl version": "1.3.2",
"oniguruma version": "5.9.6",
"Multibyte (japanese) regex support": "enabled",
"Multibyte regex (oniguruma) backtrack check": "On",
"Multibyte regex (oniguruma) version": "5.9.6",
"mbstring.detect_order": "no value",
"mbstring.encoding_translation": "Off",
"mbstring.func_overload": "0",
"mbstring.http_input": "no value",
"mbstring.http_output": "no value",
"mbstring.http_output_conv_mimetypes": "^(text\/|application\/xhtml\\+xml)",
"mbstring.internal_encoding": "no value",
"mbstring.language": "neutral",
"mbstring.strict_detection": "Off",
"mbstring.substitute_character": "no value"
},
"mcrypt": {
"Version": "2.5.8",
"Api No": "20021217",
"Supported ciphers": "cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes",
"Supported modes": "cbc cfb ctr ecb ncfb nofb ofb stream",
"mcrypt.algorithms_dir": "no value",
"mcrypt.modes_dir": "no value"
},
"memcached": {
"Version": "2.2.0",
"libmemcached version": "1.0.18",
"SASL support": "yes",
"Session support": "yes",
"igbinary support": "no",
"json support": "no",
"msgpack support": "no",
"memcached.compression_factor": "1.3",
"memcached.compression_threshold": "2000",
"memcached.compression_type": "fastlz",
"memcached.serializer": "php",
"memcached.sess_binary": "0",
"memcached.sess_connect_timeout": "1000",
"memcached.sess_consistent_hash": "0",
"memcached.sess_lock_expire": "0",
"memcached.sess_lock_max_wait": "0",
"memcached.sess_lock_wait": "150000",
"memcached.sess_locking": "1",
"memcached.sess_number_of_replicas": "0",
"memcached.sess_prefix": "memc.sess.key.",
"memcached.sess_randomize_replica_read": "0",
"memcached.sess_remove_failed": "0",
"memcached.sess_sasl_password": "no value",
"memcached.sess_sasl_username": "no value",
"memcached.store_retry_count": "2",
"memcached.use_sasl": "0"
},
"mysqli": {
"Client API library version": "mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $",
"Active Persistent Links": "0",
"Inactive Persistent Links": "0",
"Active Links": "0",
"mysqli.allow_local_infile": "On",
"mysqli.allow_persistent": "On",
"mysqli.default_host": "no value",
"mysqli.default_port": "3306",
"mysqli.default_pw": "no value",
"mysqli.default_socket": "no value",
"mysqli.default_user": "no value",
"mysqli.max_links": "Unlimited",
"mysqli.max_persistent": "Unlimited",
"mysqli.reconnect": "Off",
"mysqli.rollback_on_cached_plink": "Off"
},
"mysqlnd": {
"Version": "mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $",
"Compression": "supported",
"core SSL": "supported",
"extended SSL": "supported",
"Command buffer size": "4096",
"Read buffer size": "32768",
"Read timeout": "31536000",
"Collecting statistics": "Yes",
"Collecting memory statistics": "No",
"Tracing": "n\/a",
"Loaded plugins": "mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password",
"API Extensions": "mysqli,pdo_mysql",
"bytes_sent": "116557",
"bytes_received": "398733",
"packets_sent": "1408",
"packets_received": "8342",
"protocol_overhead_in": "33368",
"protocol_overhead_out": "5632",
"bytes_received_ok_packet": "0",
"bytes_received_eof_packet": "0",
"bytes_received_rset_header_packet": "5013",
"bytes_received_rset_field_meta_packet": "0",
"bytes_received_rset_row_packet": "7019",
"bytes_received_prepare_response_packet": "252983",
"bytes_received_change_user_packet": "128876",
"packets_sent_command": "687",
"packets_received_ok": "0",
"packets_received_eof": "0",
"packets_received_rset_header": "557",
"packets_received_rset_field_meta": "0",
"packets_received_rset_row": "671",
"packets_received_prepare_response": "3587",
"packets_received_change_user": "3493",
"result_set_queries": "557",
"non_result_set_queries": "114",
"no_index_used": "224",
"bad_index_used": "0",
"slow_queries": "0",
"buffered_sets": "557",
"unbuffered_sets": "0",
"ps_buffered_sets": "0",
"ps_unbuffered_sets": "0",
"flushed_normal_sets": "0",
"flushed_ps_sets": "0",
"ps_prepared_never_executed": "0",
"ps_prepared_once_executed": "0",
"rows_fetched_from_server_normal": "2936",
"rows_fetched_from_server_ps": "0",
"rows_buffered_from_client_normal": "2936",
"rows_buffered_from_client_ps": "0",
"rows_fetched_from_client_normal_buffered": "2936",
"rows_fetched_from_client_normal_unbuffered": "0",
"rows_fetched_from_client_ps_buffered": "0",
"rows_fetched_from_client_ps_unbuffered": "0",
"rows_fetched_from_client_ps_cursor": "0",
"rows_affected_normal": "58",
"rows_affected_ps": "0",
"rows_skipped_normal": "2936",
"rows_skipped_ps": "0",
"copy_on_write_saved": "0",
"copy_on_write_performed": "0",
"command_buffer_too_small": "0",
"connect_success": "17",
"connect_failure": "0",
"connection_reused": "0",
"reconnect": "0",
"pconnect_success": "0",
"active_connections": "18446744073709551601",
"active_persistent_connections": "0",
"explicit_close": "16",
"implicit_close": "0",
"disconnect_close": "0",
"in_middle_of_command_close": "0",
"explicit_free_result": "557",
"implicit_free_result": "0",
"explicit_stmt_close": "0",
"implicit_stmt_close": "0",
"mem_emalloc_count": "0",
"mem_emalloc_amount": "0",
"mem_ecalloc_count": "0",
"mem_ecalloc_amount": "0",
"mem_erealloc_count": "0",
"mem_erealloc_amount": "0",
"mem_efree_count": "0",
"mem_efree_amount": "0",
"mem_malloc_count": "0",
"mem_malloc_amount": "0",
"mem_calloc_count": "0",
"mem_calloc_amount": "0",
"mem_realloc_count": "0",
"mem_realloc_amount": "0",
"mem_free_count": "0",
"mem_free_amount": "0",
"mem_estrndup_count": "0",
"mem_strndup_count": "0",
"mem_estndup_count": "0",
"mem_strdup_count": "0",
"proto_text_fetched_null": "0",
"proto_text_fetched_bit": "0",
"proto_text_fetched_tinyint": "0",
"proto_text_fetched_short": "72",
"proto_text_fetched_int24": "0",
"proto_text_fetched_int": "1482",
"proto_text_fetched_bigint": "338",
"proto_text_fetched_decimal": "0",
"proto_text_fetched_float": "0",
"proto_text_fetched_double": "0",
"proto_text_fetched_date": "0",
"proto_text_fetched_year": "0",
"proto_text_fetched_time": "0",
"proto_text_fetched_datetime": "0",
"proto_text_fetched_timestamp": "0",
"proto_text_fetched_string": "5689",
"proto_text_fetched_blob": "0",
"proto_text_fetched_enum": "2239",
"proto_text_fetched_set": "0",
"proto_text_fetched_geometry": "0",
"proto_text_fetched_other": "0",
"proto_binary_fetched_null": "0",
"proto_binary_fetched_bit": "0",
"proto_binary_fetched_tinyint": "0",
"proto_binary_fetched_short": "0",
"proto_binary_fetched_int24": "0",
"proto_binary_fetched_int": "0",
"proto_binary_fetched_bigint": "0",
"proto_binary_fetched_decimal": "0",
"proto_binary_fetched_float": "0",
"proto_binary_fetched_double": "0",
"proto_binary_fetched_date": "0",
"proto_binary_fetched_year": "0",
"proto_binary_fetched_time": "0",
"proto_binary_fetched_datetime": "0",
"proto_binary_fetched_timestamp": "0",
"proto_binary_fetched_string": "0",
"proto_binary_fetched_json": "0",
"proto_binary_fetched_blob": "0",
"proto_binary_fetched_enum": "0",
"proto_binary_fetched_set": "0",
"proto_binary_fetched_geometry": "0",
"proto_binary_fetched_other": "0",
"init_command_executed_count": "0",
"init_command_failed_count": "0",
"com_quit": "16",
"com_init_db": "0",
"com_query": "671",
"com_field_list": "0",
"com_create_db": "0",
"com_drop_db": "0",
"com_refresh": "0",
"com_shutdown": "0",
"com_statistics": "0",
"com_process_info": "0",
"com_connect": "0",
"com_process_kill": "0",
"com_debug": "0",
"com_ping": "0",
"com_time": "0",
"com_delayed_insert": "0",
"com_change_user": "0",
"com_binlog_dump": "0",
"com_table_dump": "0",
"com_connect_out": "0",
"com_register_slave": "0",
"com_stmt_prepare": "0",
"com_stmt_execute": "0",
"com_stmt_send_long_data": "0",
"com_stmt_close": "0",
"com_stmt_reset": "0",
"com_stmt_set_option": "0",
"com_stmt_fetch": "0",
"com_deamon": "0",
"bytes_received_real_data_normal": "104959",
"bytes_received_real_data_ps": "0"
},
"openssl": {
"OpenSSL support": "enabled",
"OpenSSL Library Version": "OpenSSL 1.0.2g 1 Mar 2016",
"OpenSSL Header Version": "OpenSSL 1.0.2g 1 Mar 2016",
"Openssl default config": "\/usr\/lib\/ssl\/openssl.cnf",
"openssl.cafile": "no value",
"openssl.capath": "no value"
},
"pcre": {
"PCRE (Perl Compatible Regular Expressions) Support": "enabled",
"PCRE Library Version": "8.38 2015-11-23",
"PCRE JIT Support": "enabled",
"pcre.backtrack_limit": "1000000",
"pcre.jit": "1",
"pcre.recursion_limit": "100000"
},
"PDO": {
"PDO drivers": "mysql"
},
"pdo_mysql": {
"Client API version": "mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $",
"pdo_mysql.default_socket": "\/var\/run\/mysqld\/mysqld.sock"
},
"Phar": {
"Phar EXT version": "2.0.2",
"Phar API version": "1.1.1",
"SVN revision": "$Id: bf89220e0ebdb68ebb5379ffc0a32997f94e77e7 $",
"Phar-based phar archives": "enabled",
"Tar-based phar archives": "enabled",
"ZIP-based phar archives": "enabled",
"gzip compression": "enabled",
"bzip2 compression": "enabled",
"Native OpenSSL support": "enabled",
"Phar based on pear\/PHP_Archive, original concept by Davey Shafik.Phar fully realized by Gregory Beaver and Marcus Boerger.Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.": null,
"phar.cache_list": "no value",
"phar.readonly": "On",
"phar.require_hash": "On"
},
"posix": {
"Revision": "$Id: b691ca925e7a085e6929579c4eba8fed0732e0ef $"
},
"readline": {
"Readline library": "EditLine wrapper",
"cli.pager": "no value",
"cli.prompt": "\\b \\> "
},
"redis": {
"Redis Version": "2.2.8-devphp7"
},
"Reflection": {
"Version": "$Id: 3054da9d8c9ebb2a7e0a7df1f0cdf3cbbe9f8bd8 $"
},
"session": {
"Session Support": "enabled",
"Registered save handlers": "files user memcached redis rediscluster redis rediscluster",
"Registered serializer handlers": "php_serialize php php_binary wddx",
"session.auto_start": "Off",
"session.cache_expire": "180",
"session.cache_limiter": "nocache",
"session.cookie_domain": "no value",
"session.cookie_httponly": [
"On",
"Off"
],
"session.cookie_lifetime": "0",
"session.cookie_path": "\/",
"session.cookie_secure": [
"On",
"Off"
],
"session.entropy_file": "\/dev\/urandom",
"session.entropy_length": "32",
"session.gc_divisor": "1000",
"session.gc_maxlifetime": "1440",
"session.gc_probability": "0",
"session.hash_bits_per_character": "5",
"session.hash_function": "0",
"session.lazy_write": "On",
"session.name": [
"oce3lm9qjr1f",
"PHPSESSID"
],
"session.referer_check": "no value",
"session.save_handler": "files",
"session.save_path": "\/var\/lib\/php\/sessions",
"session.serialize_handler": "php",
"session.upload_progress.cleanup": "On",
"session.upload_progress.enabled": "On",
"session.upload_progress.freq": "1%",
"session.upload_progress.min_freq": "1",
"session.upload_progress.name": "PHP_SESSION_UPLOAD_PROGRESS",
"session.upload_progress.prefix": "upload_progress_",
"session.use_cookies": "On",
"session.use_only_cookies": "On",
"session.use_strict_mode": "Off",
"session.use_trans_sid": "0"
},
"shmop": {
"shmop support": "enabled"
},
"SimpleXML": {
"Revision": "$Id: b8b5c37931a53e50a937c0aef2a26d351e173215 $",
"Schema support": "enabled"
},
"sockets": {
"Sockets Support": "enabled"
},
"SPL": {
"Interfaces": "Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject",
"Classes": "AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException"
},
"standard": {
"Dynamic Library Support": "enabled",
"Path to sendmail": "\/usr\/sbin\/sendmail -t -i",
"assert.active": "1",
"assert.bail": "0",
"assert.callback": "no value",
"assert.exception": "0",
"assert.quiet_eval": "0",
"assert.warning": "1",
"auto_detect_line_endings": "0",
"default_socket_timeout": "60",
"from": "no value",
"url_rewriter.tags": "a=href,area=href,frame=src,input=src,form=fakeentry",
"user_agent": "no value"
},
"sysvmsg": {
"sysvmsg support": "enabled",
"Revision": "$Id: dfb999763f95bfe9609fae60b4e07a492888ec7c $"
},
"sysvsem": {
"Version": "7.0.15-0ubuntu0.16.04.4"
},
"sysvshm": {
"Version": "7.0.15-0ubuntu0.16.04.4"
},
"tokenizer": {
"Tokenizer Support": "enabled"
},
"wddx": {
"WDDX Session Serializer": "enabled"
},
"xml": {
"XML Support": "active",
"XML Namespace Support": "active",
"libxml2 Version": "2.9.3"
},
"xmlreader": {
"XMLReader": "enabled"
},
"xmlwriter": {
"XMLWriter": "enabled"
},
"xsl": {
"XSL": "enabled",
"libxslt Version": "1.1.28",
"libxslt compiled against libxml Version": "2.9.3",
"EXSLT": "enabled",
"libexslt Version": "1.1.28"
},
"Zend OPcache": {
"Opcode Caching": "Up and Running",
"Optimization": "Enabled",
"SHM Cache": "Enabled",
"File Cache": "Disabled",
"Startup": "OK",
"Shared memory model": "mmap",
"Cache hits": "469577",
"Cache misses": "1041",
"Used memory": "26076752",
"Free memory": "41032112",
"Wasted memory": "0",
"Interned Strings Used memory": "2558824",
"Interned Strings Free memory": "1635480",
"Cached scripts": "1041",
"Cached keys": "2001",
"Max keys": "3907",
"OOM restarts": "0",
"Hash keys restarts": "0",
"Manual restarts": "0",
"opcache.blacklist_filename": "no value",
"opcache.consistency_checks": "0",
"opcache.dups_fix": "Off",
"opcache.enable": "On",
"opcache.enable_cli": "Off",
"opcache.enable_file_override": "Off",
"opcache.error_log": "no value",
"opcache.fast_shutdown": "0",
"opcache.file_cache": "no value",
"opcache.file_cache_consistency_checks": "1",
"opcache.file_cache_only": "0",
"opcache.file_update_protection": "2",
"opcache.force_restart_timeout": "180",
"opcache.huge_code_pages": "Off",
"opcache.inherited_hack": "On",
"opcache.interned_strings_buffer": "4",
"opcache.lockfile_path": "\/tmp",
"opcache.log_verbosity_level": "1",
"opcache.max_accelerated_files": "2000",
"opcache.max_file_size": "0",
"opcache.max_wasted_percentage": "5",
"opcache.memory_consumption": "64",
"opcache.optimization_level": "0x7FFFBFFF",
"opcache.preferred_memory_model": "no value",
"opcache.protect_memory": "0",
"opcache.restrict_api": "no value",
"opcache.revalidate_freq": "2",
"opcache.revalidate_path": "Off",
"opcache.save_comments": "1",
"opcache.use_cwd": "On",
"opcache.validate_permission": "Off",
"opcache.validate_root": "Off",
"opcache.validate_timestamps": "On"
},
"zip": {
"Zip": "enabled",
"Zip version": "1.13.5",
"Libzip version": "1.0.1"
},
"zlib": {
"Stream Wrapper": "compress.zlib:\/\/",
"Stream Filter": "zlib.inflate, zlib.deflate",
"Compiled Version": "1.2.8",
"Linked Version": "1.2.8",
"zlib.output_compression": "Off",
"zlib.output_compression_level": "-1",
"zlib.output_handler": "no value"
},
"Environment": {
"APACHE_RUN_DIR": "\/var\/run\/apache2",
"APACHE_PID_FILE": "\/var\/run\/apache2\/apache2.pid",
"APACHE_LOCK_DIR": "\/var\/lock\/apache2",
"LANG": "C",
"APACHE_RUN_USER": "www-data",
"APACHE_RUN_GROUP": "www-data",
"APACHE_LOG_DIR": "\/var\/log\/apache2",
"PWD": "\/"
}
}
}
Please add a Makefile which installs the dependencies.
Ideally, make dist
would build a releasable version (cleant up) in a subdir "build" or "dist" in which the release script can pick it up.
The following scenario:
If you installed the enterprise_key App because you had a trail version running and the demo ran out, you can't uninstall the Key App. Thre response is: "Shipped apps cannot be uninstalled"
here is an example of the information as comminicated to to owncloud 9.1 between fe and be - we will change this structure. take this as an idea ...
{
"missingDependencies" : [],
"internal" : 0,
"label" : "",
"id" : "174779",
"author" : "netknights",
"typename" : "ownCloud Productivity",
"dependencies" : {
"owncloud" : {
"@attributes" : {
"min-version" : "9.1.4.2",
"max-version" : "9.1.4.2"
}
}
},
"active" : false,
"missingMinOwnCloudVersion" : false,
"version" : "2.2.0",
"preview-full" : "https://apps.owncloud.com/CONTENT/content-pre1/174779-1.png",
"personid" : "netknights",
"license" : "AGPL",
"update" : false,
"ocs_id" : "174779",
"licence" : "AGPL",
"groups" : [],
"name" : "privacyIDEA ownCloud App",
"detailpage" : "https://apps.owncloud.com/content/show.php?content=174779",
"missingMaxOwnCloudVersion" : false,
"preview" : "https://apps.owncloud.com/CONTENT/content-m1/m174779-1.png",
"score" : "53",
"description" : "Flexible, enterprise ready two factor authentication\n\nThis app helps you secure the access to the ownCloud Web UI in your company. It adds a second factor to the Web UI login. This second factor can be any Smartphone App, key fob tokens, smartdisplayer cards, SMS or Email, Yubikey or the Nitrokey and all common OTP tokens.\n\nThe authentication devices are manages centrally in the privacyIDEA server. Running one privacyIDEA server in your network enables you to add second factor not only to your ownCloud installation but also to any other application like web portals, firewall, VPN, Windows Desktop login, SSH servers...\n\nThe privacyIDEA ownCloud Application runs in a demo mode after download and installation. You need a working privacyIDEA installation and a subscription file provided by NetKnights for productive use.\n\nNote: After activating the App *all* users will be verified with a second factor. I.e. be sure to have your privacyIDEA server up and running and to configure the privacyIDEA ownCloud App correctly.\n\nWe recommend that you first get a basic understanding of the privacyIDEA server!\n\nSee the youtube video to get an idea https://www.youtube.com/watch?v=Lgum_cTY_Y8&t=21s how this works.",
"canUnInstall" : false,
"changed" : 1486019868,
"needsDownload" : true,
"removable" : false,
"profilepage" : "http://opendesktop.org/usermanager/search.php?username=netknights",
"type" : "922",
"canInstall" : true,
"downloads" : 291,
"level" : 100
},
If you install an app you just get an empty array as a response from the API. Please return proper informations like the name and version number.
/cc @IljaN @DeepDiver1975
Idea: provide updates for the market app through the marketplace.
Every release would still bundle the latest version of the market app.
Subsequent non-bundled releases can then be published in the marketplace itself so instances could update it.
There is some risk associated because if the updated market app is broken, no more online update is possible. Also, self-updating code can be tricky.
Setting to backlog, needs discussion.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.