@mainframe/app-permissions v0.3.0
Application permissions utilities
Types
PermissionKeyBasic
Enum of permissions keys that only require a boolean check.
PermissionKey
Union of PermissionKeyBasic and HTTPS_REQUEST string.
HTTPSRequestDefinition
Array<string> representing a list of domains.
PermissionsDefinitions
Permissions definitions as supported by the daemon.
type PermissionsDefinitions = {
HTTPS_REQUEST: HTTPSRequestDefinition,
[PermissionKeyBasic]: boolean,
}PartialPermissionsDefinitions
Permissions definitions as defined in an application manifest.
type PartialPermissionsDefinitions = {
HTTPS_REQUEST?: HTTPSRequestDefinition,
[PermissionKeyBasic]: boolean,
}PermissionsDefinitionsDifference
Differences between two PartialPermissionsDefinitions.
type PermissionsDefinitionsDifference = {
added: PartialPermissionsDefinitions,
changed: PartialPermissionsDefinitions,
removed: PartialPermissionsDefinitions,
unchanged: PartialPermissionsDefinitions,
}HTTPSRequestGrant
Permissions granted by the user for the HTTPS_REQUEST key.
type HTTPSRequestGrant = {
granted: HTTPSRequestDefinition,
denied: HTTPSRequestDefinition,
}PermissionsGrants
Permissions granted by the user.
type PermissionsGrants = {
HTTPS_REQUEST: HTTPSRequestGrant,
[PermissionKeyBasic]: boolean,
}PermissionGrant
type PermissionGrant = $Values<PermissionsGrants>
PermissionRequirement
Enum for permission requirement as defined in an application manifest: 'required' | 'optional'.
PermissionLifetime
Lifetime of a permission grant for a running app.
type PermissionLifetime =
| 'app' // As long as the app is installed
| 'user' // As long as the user allows
| 'session' // As long as the app is runningPermissionsRequirements
Permissions requirements as defined in an application manifest.
type PermissionsRequirements = {
[PermissionRequirement]: PermissionsDefinitions,
}PermissionsRequirementsDifference
type PermissionsRequirementsDifference = {
[PermissionRequirement]: PermissionsDefinitionsDifference,
}PermissionsDetails
type PermissionsDetails = { [PermissionLifetime]: PermissionsGrants }PermissionCheckResult
type PermissionCheckResult =
| 'unknown_key' // Not a valid permission key
| 'not_set' // Valid key but no value
| 'invalid_input' // Special for HTTPS_REQUEST: domain not provided
| 'granted'
| 'denied'APIs
EMPTY_DEFINITIONS
Constant of type PermissionsDefinitions
createHTTPSRequestGrant()
Arguments
granted?: HTTPSRequestDefinition, defaults to[]denied?: HTTPSRequestDefinition, defaults to[]
Returns HTTPSRequestGrant
mergeGrantsToDetails()
Arguments
app: PermissionsGrantsuser: PermissionsGrants
Returns PermissionsDetails
checkPermission()
Arguments
permissions: PermissionsGrantskey: PermissionKeyinput?: ?string: value to check against, only needed with theHTTPS_REQUESTkey.
Returns HTTPSRequestGrant
getDefinitionsDifference()
Arguments
current?: PermissionsDefinitions, defaults toEMPTY_DEFINITIONSnext?: PermissionsDefinitions, defaults toEMPTY_DEFINITIONS
Returns PermissionsDefinitionsDifference
getRequirementsDifference()
Arguments
current?: PermissionsRequirements, defaults to{}next?: PermissionsRequirements, defaults to{}
Returns PermissionsRequirementsDifference