#[non_exhaustive]pub enum Permission {
Show 37 variants
ViewServices,
ApproveServices,
RejectServices,
RemoveServices,
UpdateServices,
ViewSystemServices,
ApproveSystemServices,
RejectSystemServices,
RemoveSystemServices,
UpdateSystemServices,
ViewSoftware,
CreateSoftware,
UpdateSoftware,
DeleteSoftware,
TriggerChecks,
TriggerUpdates,
ManageScheduler,
ViewHosts,
UpdateHosts,
DeactivateHosts,
ViewSettings,
ManageAuthSettings,
ManageEnrollmentTokens,
ManageAgentCerts,
ManageGlobalSettings,
ManageCommands,
ViewNotifications,
ManageNotifications,
ViewAuditLogs,
ViewSystemAuditLogs,
ManageUsers,
ManageIgnores,
TestPluginConfigs,
AccessMcp,
ViewInstanceConfigState,
ManageInstanceConfigState,
Other(String),
}Expand description
An authorization permission.
Used in shared surface action descriptors (SurfaceActionDescriptor.permission) and
web API auth middleware to gate access to actions and endpoints.
All variants serialize to / deserialize from snake_case strings.
Unknown strings received on the wire are preserved as Permission::Other so that
old binaries do not silently lose permissions added by newer builds.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ViewServices
View tenant services and their status.
ApproveServices
Approve pending service enrollments.
RejectServices
Reject pending service enrollments.
RemoveServices
Deactivate/remove services.
UpdateServices
Update service settings (ping interval, freeze, merge).
ViewSystemServices
View system services (MQTT bridge, external scheduler).
ApproveSystemServices
Approve pending system services.
RejectSystemServices
Reject pending system services.
RemoveSystemServices
Deactivate system services.
UpdateSystemServices
Update system service settings.
ViewSoftware
View software items, plugin configs, history.
CreateSoftware
Create software items and plugin configs.
UpdateSoftware
Edit software items and plugin configs.
DeleteSoftware
Delete software items and plugin configs.
TriggerChecks
Trigger version checks and autodiscovery.
TriggerUpdates
Trigger update execution (single + batch).
ManageScheduler
Manage scheduled tasks.
ViewHosts
View hosts.
UpdateHosts
Update host properties and tags.
DeactivateHosts
Deactivate hosts.
ViewSettings
View all tenant settings (unified read).
ManageAuthSettings
Manage registration, authentication, OIDC providers.
ManageEnrollmentTokens
Manage tenant enrollment tokens.
ManageAgentCerts
Manage agent certificate settings.
ManageGlobalSettings
Manage global infrastructure settings.
ManageCommands
Controls the ability to modify command-bearing plugin config fields
(shell commands, Docker post_pull_command, and custom hook commands
arrays). Granting this permission is equivalent to granting effective
code-execution authority on all managed hosts assigned to the affected
software items. Assign with the same care as granting root access.
ViewNotifications
View notification channels, rules, log.
ManageNotifications
Create/modify notification channels and rules; SMTP settings.
ViewAuditLogs
View tenant-scoped audit log entries.
ViewSystemAuditLogs
View system-level audit log entries.
ManageUsers
Manage user roles and access.
ManageIgnores
Manage autodiscovery ignore rules.
TestPluginConfigs
Test plugin configurations against hosts (dry-run validation).
AccessMcp
Access the MCP server endpoint (/mcp).
Gate to the MCP endpoint. Tools enforce their own additional
fine-grained permission checks (ViewSoftware, TriggerUpdates).
ViewInstanceConfigState
View the current config-reload coordinator state.
ManageInstanceConfigState
Manage (clear-degraded) the config-reload coordinator state.
Other(String)
An unknown permission received from a newer build.
Preserved on the wire instead of being dropped, so old binaries never silently lose permissions added in newer builds.
Implementations§
Source§impl Permission
impl Permission
Sourcepub fn all() -> Vec<Permission>
pub fn all() -> Vec<Permission>
Returns all permission variants.
Sourcepub fn description(&self) -> &str
pub fn description(&self) -> &str
Returns a human-readable description of the permission.
Trait Implementations§
Source§impl Clone for Permission
impl Clone for Permission
Source§fn clone(&self) -> Permission
fn clone(&self) -> Permission
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Permission
impl Debug for Permission
Source§impl<'de> Deserialize<'de> for Permission
impl<'de> Deserialize<'de> for Permission
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Permission, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Permission, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl Display for Permission
impl Display for Permission
impl Eq for Permission
Source§impl From<String> for Permission
impl From<String> for Permission
Source§fn from(s: String) -> Permission
fn from(s: String) -> Permission
Source§impl FromStr for Permission
impl FromStr for Permission
Source§type Err = Infallible
type Err = Infallible
Source§fn from_str(s: &str) -> Result<Permission, <Permission as FromStr>::Err>
fn from_str(s: &str) -> Result<Permission, <Permission as FromStr>::Err>
s to return a value of this type. Read moreSource§impl Hash for Permission
impl Hash for Permission
Source§impl IntoEnumIterator for Permission
impl IntoEnumIterator for Permission
type Iterator = PermissionIter
fn iter() -> PermissionIter
Source§impl PartialEq for Permission
impl PartialEq for Permission
Source§fn eq(&self, other: &Permission) -> bool
fn eq(&self, other: &Permission) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Permission
impl Serialize for Permission
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl StructuralPartialEq for Permission
Auto Trait Implementations§
impl Freeze for Permission
impl RefUnwindSafe for Permission
impl Send for Permission
impl Sync for Permission
impl Unpin for Permission
impl UnsafeUnpin for Permission
impl UnwindSafe for Permission
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more