Skip to main content

Interface: IPermissionEnforcer

Defined in: src/types/interfaces/plugin.interface.ts:740

Permission enforcer interface.

Remarks

Enforces plugin permissions at runtime using ES6 Proxy wrappers. All service access goes through permission checks.

Since

0.1.0

Methods

checkPermission()

checkPermission(plugin, permission): boolean

Defined in: src/types/interfaces/plugin.interface.ts:748

Checks if a plugin has a specific permission.

Parameters

plugin

IChivePlugin

Plugin to check

permission

string

Permission string (e.g., 'network:api.github.com')

Returns

boolean

True if permission is granted


createPermissionProxy()

createPermissionProxy<T>(service, requiredPermission, plugin): T

Defined in: src/types/interfaces/plugin.interface.ts:758

Creates a permission-checking proxy for a service.

Type Parameters

T extends object

Parameters

service

T

Service to wrap

requiredPermission

string

Permission required to access service

plugin

IChivePlugin

Plugin requesting access

Returns

T

Proxied service that checks permissions on each call


enforceHookAccess()

enforceHookAccess(plugin, hookName): void

Defined in: src/types/interfaces/plugin.interface.ts:789

Enforces hook access permission.

Parameters

plugin

IChivePlugin

Plugin requesting hook access

hookName

string

Hook being accessed

Returns

void

Throws

If hook not allowed


enforceNetworkAccess()

enforceNetworkAccess(plugin, domain): void

Defined in: src/types/interfaces/plugin.interface.ts:771

Enforces network access permission.

Parameters

plugin

IChivePlugin

Plugin requesting access

domain

string

Domain being accessed

Returns

void

Throws

If access denied


enforceStorageLimit()

enforceStorageLimit(plugin, sizeBytes): void

Defined in: src/types/interfaces/plugin.interface.ts:780

Enforces storage limit.

Parameters

plugin

IChivePlugin

Plugin requesting storage

sizeBytes

number

Size of data being stored

Returns

void

Throws

If quota exceeded


resetStorageUsage()

resetStorageUsage(pluginId): void

Defined in: src/types/interfaces/plugin.interface.ts:796

Resets storage usage tracking for a plugin.

Parameters

pluginId

string

ID of plugin to reset

Returns

void