AppInfoDefinition
in package
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