Nextcloud PHP API (master)

AppInfoDefinition
in package

FinalYes
Tags
psalm-type

AppInfoLocalizedEntry = array{ '@attributes'?: array{ lang?: non-empty-string, }, '@value': string, }

AppInfoLocalizedData = array{ 'name': string, 'summary': string, 'description': string, }

AppInfoRawXmlData = array{ 'name': string|AppInfoLocalizedEntry|list<string|AppInfoLocalizedEntry>, 'summary': string|AppInfoLocalizedEntry|list<string|AppInfoLocalizedEntry>, 'description': string|AppInfoLocalizedEntry|list<string|AppInfoLocalizedEntry>, }

The enum definitions as per info.xsd:

AppInfoFieldTypeArchitecture = 'x86'|'x86_64'|'aarch'|'aarch64'

AppInfoFieldTypeBits = 64|32

AppInfoFieldTypeCategory = 'dashboard'|'security'|'customization'|'files'|'integration'|'monitoring'|'multimedia'|'office'|'organization'|'social'|'tools'|'games'|'search'|'workflow'|'ai'

AppInfoFieldTypeCollaborationPluginType = 'collaborator-search'|'autocomplete-sort'

AppInfoFieldTypeDatabases = 'sqlite'|'mysql'|'pgsql'

AppInfoFieldTypeDonationPlatform = 'paypal'|'stripe'|'other'

AppInfoFieldTypeLicense = 'AGPL-3.0-only'|'AGPL-3.0-or-later'|'Apache-2.0'|'GPL-3.0-only'|'GPL-3.0-or-later'|'MIT'|'MPL-2.0'|'agpl'|'mit'|'mpl'|'apache'|'gpl3'

AppInfoFieldTypeNavigationType = 'link'|'settings'

AppInfoFieldTypeNavigationRole = 'all'|'admin'

AppInfoFieldTypeShareType = 'SHARE_TYPE_USER'|'SHARE_TYPE_GROUP'|'SHARE_TYPE_LINK'|'SHARE_TYPE_EMAIL'|'SHARE_TYPE_CONTACT'|'SHARE_TYPE_REMOTE'|'SHARE_TYPE_CIRCLE'|'SHARE_TYPE_GUEST'|'SHARE_TYPE_ROOM'

AppInfoFieldTypeTypes = 'prelogin'|'filesystem'|'authentication'|'extended_authentication'|'logging'|'dav'|'prevent_group_restriction'|'session'

AppInfoFieldTypeVcs = 'git'|'mercurial'|'subversion'|'bzr'

The complex types as per info.xsd:

AppInfoFieldTypeAuthor = string|array{ '@attributes': array{ 'mail'?: non-empty-string, 'homepage'?: non-empty-string }, '@value': non-empty-string, }

AppInfoFieldTypeDocumentation = array{ 'user'?: non-empty-string, 'admin'?: non-empty-string, 'developer'?: non-empty-string, }

AppInfoFieldTypeRepository = string|array{ '@attributes'?: array{ 'type'?: AppInfoFieldTypeVcs, }, '@value': non-empty-string, }

AppInfoFieldTypeScreenshot = string|array{ '@attributes'?: array{ 'small-thumbnail'?: non-empty-string, }, '@value': non-empty-string, }

AppInfoFieldTypeDonation = string|array{ '@attributes'?: array{ 'title'?: non-empty-string, 'type'?: AppInfoFieldTypeDonationPlatform, }, '@value': non-empty-string, }

AppInfoFieldTypeDependenciesPhp = ''|array{ '@attributes': array{ 'min-int-size'?: AppInfoFieldTypeBits, 'min-version'?: non-empty-string, 'max-version'?: non-empty-string, }, '@value'?: '', }

AppInfoFieldTypeDependenciesDatabase = AppInfoFieldTypeDatabases|array{ '@attributes': array{ 'min-version'?: non-empty-string, 'max-version'?: non-empty-string, }, '@value': AppInfoFieldTypeDatabases, }

AppInfoFieldTypeDependenciesOwnCloud = array{ '@attributes': array{ 'min-version': non-empty-string, 'max-version'?: non-empty-string, }, }

AppInfoFieldTypeDependenciesNextcloud = array{ '@attributes': array{ 'min-version': non-empty-string, 'max-version': non-empty-string, }, }

AppInfoFieldTypeDependencies = array{ 'php'?: AppInfoFieldTypeDependenciesPhp, 'database'?: AppInfoFieldTypeDependenciesDatabase|list<AppInfoFieldTypeDependenciesDatabase>, 'command'?: non-empty-string|list, 'lib'?: non-empty-string|list, 'owncloud'?: AppInfoFieldTypeDependenciesOwnCloud, 'nextcloud': AppInfoFieldTypeDependenciesNextcloud, 'architecture'?: non-empty-string|list, 'backend'?: non-empty-string|list, }

AppInfoFieldTypeRepairSteps = array{ 'pre-migration'?: list, 'post-migration'?: list, 'live-migration'?: list, 'install'?: list, 'uninstall'?: list, }

AppInfoFieldTypeSettings = array{ 'admin'?: list, 'admin-section'?: list, 'personal'?: list, 'personal-section'?: list, 'admin-delegation'?: list, 'admin-delegation-section'?: list, }

AppInfoFieldTypeActivity = array{ 'settings'?: list, 'filters'?: list, 'providers'?: list, }

AppInfoFieldTypeDashboard = array{ 'widget': list, }

AppInfoFieldTypeFullTextSearchProvider = class-string|array{ '@attributes'?: array{ 'min-version'?: non-empty-string, 'max-version'?: non-empty-string, }, '@value': class-string, }

AppInfoFieldTypeFullTextSearch = array{ 'platform'?: list, 'provider'?: list<AppInfoFieldTypeFullTextSearchProvider>, }

AppInfoFieldTypeNavigationEntryValue = array{ 'id'?: non-empty-string, 'name': non-empty-string, 'route'?: non-empty-string, 'icon'?: non-empty-string, 'order'?: numeric, 'type'?: AppInfoFieldTypeNavigationType, }

AppInfoFieldTypeNavigationEntry = AppInfoFieldTypeNavigationEntryValue|array{ '@attributes'?: array{ 'role'?: AppInfoFieldTypeNavigationRole, }, '@value': AppInfoFieldTypeNavigationEntryValue, }

AppInfoFieldTypeNavigation = array{ 'navigation': AppInfoFieldTypeNavigationEntry|list<AppInfoFieldTypeNavigationEntry>, }

AppInfoFieldTypeContactMenu = array{ 'provider': class-string, }

AppInfoFieldTypeCollaborationPlugin = array{ '@attributes': array{ 'type': AppInfoFieldTypeCollaborationPluginType, 'share-type'?: AppInfoFieldTypeShareType, }, '@value': class-string, }

AppInfoFieldTypeCollaboration = array{ 'plugins': AppInfoFieldTypeCollaborationPlugin|list<AppInfoFieldTypeCollaborationPlugin>, }

AppInfoFieldTypeOpenMetrics = array{ 'exporter': class-string|list, }

AppInfoFieldTypeSabre = array{ 'collections'?: class-string|list, 'plugins'?: class-string|list, 'address-book-plugins'?: class-string|list, 'calendar-plugins'?: class-string|list, }

AppInfoFieldTypeTrashBackend = array{ '@attributes': array{ 'for': class-string, }, '@value': class-string, }

AppInfoFieldTypeTrash = array{ 'backend': AppInfoFieldTypeTrashBackend|list<AppInfoFieldTypeTrashBackend>, }

AppInfoFieldTypeVersionsBackend = array{ '@attributes': array{ 'for': class-string, }, '@value': class-string, }

AppInfoFieldTypeVersions = array{ 'backend': AppInfoFieldTypeVersionsBackend|list<AppInfoFieldTypeVersionsBackend>, }

AppInfoFieldTypeExternalAppDockerInstall = array{ 'registry': non-empty-string, 'image': non-empty-string, 'image-tag': non-empty-string, }

AppInfoFieldTypeExternalAppEnvironmentVariable = array{ 'name': non-empty-string, 'display-name': non-empty-string, 'description'?: non-empty-string, 'default'?: non-empty-string, }

AppInfoFieldTypeExternalApp = array{ 'docker-install'?: AppInfoFieldTypeExternalAppDockerInstall, 'scopes'?: string|list, 'system'?: bool, 'environment-variables'?: AppInfoFieldTypeExternalAppEnvironmentVariable|list<AppInfoFieldTypeExternalAppEnvironmentVariable>, }

// Only available for shipped apps:

AppInfoFieldTypeShippedAppServices = array<non-empty-string, non-empty-string>

AppInfoSharedDefinition = array{ 'id': non-empty-string, 'version': non-empty-string, 'default_enable'?: '', 'licence': AppInfoFieldTypeLicense|list<AppInfoFieldTypeLicense>, 'author': AppInfoFieldTypeAuthor|list<AppInfoFieldTypeAuthor>, 'namespace'?: non-empty-string, 'types'?: list<AppInfoFieldTypeTypes>, 'documentation'?: AppInfoFieldTypeDocumentation, 'category': list<AppInfoFieldTypeCategory>, 'website'?: non-empty-string, 'discussion'?: non-empty-string, 'bugs': non-empty-string, 'repository'?: AppInfoFieldTypeRepository, 'screenshot'?: AppInfoFieldTypeScreenshot|list<AppInfoFieldTypeScreenshot>, 'donation'?: AppInfoFieldTypeDonation|list<AppInfoFieldTypeDonation>, 'dependencies': AppInfoFieldTypeDependencies, 'background-jobs'?: class-string|list, 'repair-steps'?: AppInfoFieldTypeRepairSteps, 'two-factor-providers'?: list, 'commands'?: list, 'settings'?: AppInfoFieldTypeSettings, 'activity'?: AppInfoFieldTypeActivity, 'dashboard'?: AppInfoFieldTypeDashboard, 'fulltextsearch'?: AppInfoFieldTypeFullTextSearch, 'navigations'?: AppInfoFieldTypeNavigation, 'contactsmenu'?: AppInfoFieldTypeContactMenu, 'collaboration'?: AppInfoFieldTypeCollaboration, 'openmetrics'?: AppInfoFieldTypeOpenMetrics, 'sabre'?: AppInfoFieldTypeSabre, 'trash'?: AppInfoFieldTypeTrash, 'versions'?: AppInfoFieldTypeVersions, 'external-app'?: AppInfoFieldTypeExternalApp, 'public'?: AppInfoFieldTypeShippedAppServices, 'remote'?: AppInfoFieldTypeShippedAppServices, }

// The app info definition with localization applied:

AppInfoDefinition = AppInfoLocalizedData & AppInfoSharedDefinition // The app info definition as it is parsed from XML:

AppInfoXmlDefinition = AppInfoRawXmlData & AppInfoSharedDefinition

warning

This may change without regular deprecation cycle if the "appinfo.xml" definition changes. Use https://apps.nextcloud.com/schema/apps/info.xsd as the source of truth.

since
34.0.0

Table of Contents

On this page
  • Table Of Contents

Search results