feat(appliance): initial release of MERICA standalone appliance v1.0.0
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
from typing import List, Optional, Dict, Any
|
||||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class CapabilityTier(str, Enum):
|
||||
ADMIN = "admin"
|
||||
EDITOR = "editor"
|
||||
VIEWER = "viewer"
|
||||
|
||||
|
||||
class UserSession(BaseModel):
|
||||
id: str
|
||||
username: str
|
||||
name: str
|
||||
email: Optional[str] = None
|
||||
auth_provider: str = "local" # "local" or "keycloak"
|
||||
raw_roles: List[str] = Field(default_factory=list)
|
||||
raw_groups: List[str] = Field(default_factory=list)
|
||||
capability: str = "viewer" # "admin", "editor", "viewer"
|
||||
can_edit: bool = False
|
||||
can_deploy: bool = False
|
||||
is_admin: bool = False
|
||||
is_readonly: bool = True
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
class SSOCallbackRequest(BaseModel):
|
||||
code: str
|
||||
redirect_uri: str
|
||||
code_verifier: Optional[str] = None
|
||||
|
||||
|
||||
class SSOTokenVerifyRequest(BaseModel):
|
||||
access_token: str
|
||||
|
||||
|
||||
class TokenResponse(BaseModel):
|
||||
access_token: str
|
||||
token_type: str = "Bearer"
|
||||
expires_in: int = 86400
|
||||
user: UserSession
|
||||
|
||||
|
||||
class RBACSettingsSchema(BaseModel):
|
||||
editor_roles: List[str] = Field(default_factory=list)
|
||||
editor_groups: List[str] = Field(default_factory=list)
|
||||
viewer_roles: List[str] = Field(default_factory=list)
|
||||
viewer_groups: List[str] = Field(default_factory=list)
|
||||
admin_roles: List[str] = Field(default_factory=list)
|
||||
admin_groups: List[str] = Field(default_factory=list)
|
||||
updated_at: Optional[str] = None
|
||||
updated_by: Optional[str] = None
|
||||
Reference in New Issue
Block a user