n5i 0.11.5

Common components for n5i
Documentation
// SPDX-FileCopyrightText: 2024-2026 The n5i Project
//
// SPDX-License-Identifier: AGPL-3.0-or-later

use serde::{Deserialize, Serialize};

pub mod app_stores;
pub mod distro;
#[cfg(feature = "kube")]
pub mod kubernetes;
pub mod permissions;
pub mod settings;
pub mod utils;

#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct JwtAdditionalClaims {
    pub user_group: String,
    pub permission_set: permissions::PermissionSet,
    pub email: Option<String>,
    // Dummy field for backwards compatibility with certain apps
    pub is_totp_enabled: Option<bool>,
    pub session_id: uuid::Uuid,
}

#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct SessionTokenAdditionalClaims {
    pub token_id: uuid::Uuid,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub parent_session: Option<uuid::Uuid>,
}

#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[cfg_attr(feature = "graphql", derive(async_graphql::Enum))]
pub enum PodSecurityStandard {
    Restricted,
    Baseline,
    #[default]
    Privileged,
}