wiki/archiv/User_Editable_Fields_Overview.md

11 KiB

User Editable Fields Overview

This document provides a comprehensive overview of all fields that users can edit across all Pydantic models in the PowerOn system, excluding protected system fields (id and fields starting with _).

Protected System Fields (Not Editable by Users)

The following field types are automatically protected and cannot be modified by users:

  • ID Fields: All id fields (primary keys)
  • System Fields: All fields starting with _ (underscore)
  • Read-Only Fields: Fields marked with frontend_readonly=True

interfaceAppModel.py

Mandate

Table: Mandate Editable Fields:

  • name (text, required) - Name of the mandate
  • language (select, required) - Default language (de, en, fr, it)
  • enabled (checkbox, optional) - Whether mandate is enabled

Protected Fields: id

UserConnection

Table: UserConnection Editable Fields:

  • externalUsername (text, optional) - Username in external system
  • externalEmail (email, optional) - Email in external system
  • status (select, optional) - Connection status (active, inactive, expired, pending)

Protected Fields: id, userId, authority, externalId, connectedAt, lastChecked, expiresAt, tokenStatus, tokenExpiresAt

User

Table: User Editable Fields:

  • username (text, required) - Username for login
  • email (email, required) - Email address
  • fullName (text, optional) - Full name
  • language (select, required) - Preferred language (de, en, fr, it)
  • enabled (checkbox, optional) - Whether user is enabled
  • privilege (select, required) - Permission level (user, admin, sysadmin)

Protected Fields: id, authenticationAuthority, mandateId

UserInDB

Table: UserInDB (extends User) Editable Fields: Same as User Additional Protected Fields: hashedPassword

Token

Table: Token Editable Fields: None (all fields are system-managed)

Protected Fields: id, userId, authority, connectionId, tokenAccess, tokenType, expiresAt, tokenRefresh, createdAt

AuthEvent

Table: AuthEvent Editable Fields: None (all fields are system-managed)

Protected Fields: id, userId, eventType, timestamp, ipAddress, userAgent, success, details

SystemTable

Table: SystemTable Editable Fields: None (all fields are system-managed)

Protected Fields: table_name, initial_id

interfaceComponentModel.py

FileItem

Table: FileItem Editable Fields:

  • fileName (text, required) - Name of the file

Protected Fields: id, mandateId, mimeType, fileHash, fileSize, creationDate

FilePreview

Table: FilePreview (transient model) Editable Fields: None (all fields are computed/display-only)

Protected Fields: content, mimeType, fileName, isText, encoding, size

FileData

Table: FileData Editable Fields: None (all fields are system-managed)

Protected Fields: id, data, base64Encoded

Prompt

Table: Prompt Editable Fields:

  • content (textarea, required) - Content of the prompt
  • name (text, required) - Name of the prompt

Protected Fields: id, mandateId

interfaceChatModel.py

ActionDocument

Table: ActionDocument (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: documentName, documentData, mimeType

ActionResult

Table: ActionResult (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: success, error, documents, resultLabel

UserInputRequest

Table: UserInputRequest (transient model) Editable Fields:

  • prompt (text, required) - Prompt for the user
  • listFileId (list, optional) - List of file IDs
  • userLanguage (text, optional) - User's preferred language

Protected Fields: None

ContentMetadata

Table: ContentMetadata (transient model) Editable Fields: None (all fields are system-computed)

Protected Fields: size, pages, error, width, height, colorMode, fps, durationSec, mimeType, base64Encoded

ContentItem

Table: ContentItem (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: label, data, metadata

ChatDocument

Table: ChatDocument Editable Fields: None (all fields are system-managed)

Protected Fields: id, messageId, fileId, fileName, fileSize, mimeType, roundNumber, taskNumber, actionNumber, actionId

DocumentExchange

Table: DocumentExchange (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: documentsLabel, documents

ExtractedContent

Table: ExtractedContent (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: id, contents

TaskAction

Table: TaskAction Editable Fields:

  • execParameters (dict, optional) - Action parameters
  • userMessage (text, optional) - User-friendly message

Protected Fields: id, execMethod, execAction, execResultLabel, expectedDocumentFormats, status, error, retryCount, retryMax, processingTime, timestamp, result, resultDocuments

TaskResult

Table: TaskResult (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: taskId, status, success, feedback, error

TaskItem

Table: TaskItem Editable Fields:

  • userInput (text, required) - User input that triggered the task
  • rollbackOnFailure (boolean, optional) - Whether to rollback on failure
  • dependencies (list, optional) - List of task IDs this task depends on
  • feedback (text, optional) - Task feedback message

Protected Fields: id, workflowId, status, error, startedAt, finishedAt, actionList, retryCount, retryMax, processingTime, resultLabels

ChatStat

Table: ChatStat Editable Fields: None (all fields are system-computed)

Protected Fields: id, workflowId, messageId, processingTime, tokenCount, bytesSent, bytesReceived, successRate, errorCount

ChatLog

Table: ChatLog Editable Fields: None (all fields are system-generated)

Protected Fields: id, workflowId, message, type, timestamp, status, progress, performance

ChatMessage

Table: ChatMessage Editable Fields:

  • message (text, optional) - Message content
  • role (text, required) - Role of the message sender
  • status (text, required) - Status of the message (first, step, last)
  • success (boolean, optional) - Whether message processing was successful

Protected Fields: id, workflowId, parentMessageId, documents, documentsLabel, sequenceNr, publishedAt, stats, actionId, actionMethod, actionName, roundNumber, taskNumber, actionNumber, taskProgress, actionProgress

ChatWorkflow

Table: ChatWorkflow Editable Fields:

  • status (select, optional) - Current status (running, completed, stopped, error)
  • name (text, required) - Name of the workflow

Protected Fields: id, mandateId, currentRound, currentTask, currentAction, totalTasks, totalActions, lastActivity, startedAt, logs, messages, stats, tasks

TaskStep

Table: TaskStep (transient model) Editable Fields:

  • objective (text, required) - Task objective
  • dependencies (list, optional) - List of dependencies
  • success_criteria (list, optional) - List of success criteria
  • estimated_complexity (text, optional) - Estimated complexity
  • userMessage (text, optional) - User-friendly message

Protected Fields: id

TaskHandover

Table: TaskHandover (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: taskId, sourceTask, inputDocuments, outputDocuments, context, previousResults, improvements, workflowSummary, messageHistory, timestamp, handoverType

TaskContext

Table: TaskContext (transient model) Editable Fields: None (all fields are system-managed)

Protected Fields: All fields are system-managed

ReviewContext

Table: ReviewContext (transient model) Editable Fields: None (all fields are system-managed)

Protected Fields: All fields are system-managed

ReviewResult

Table: ReviewResult (transient model) Editable Fields:

  • userMessage (text, optional) - User-friendly message

Protected Fields: status, reason, improvements, quality_score, missing_outputs, met_criteria, unmet_criteria, confidence

TaskPlan

Table: TaskPlan (transient model) Editable Fields:

  • overview (text, required) - Plan overview
  • userMessage (text, optional) - User-friendly message

Protected Fields: tasks

WorkflowResult

Table: WorkflowResult (transient model) Editable Fields: None (all fields are system-computed)

Protected Fields: status, completed_tasks, total_tasks, execution_time, final_results_count, error, phase

AiResult

Table: AiResult (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: filename, mimetype, content

CentralizedAiResponse

Table: CentralizedAiResponse (transient model) Editable Fields: None (all fields are system-generated)

Protected Fields: aiResults, success, error

Summary by Table Type

Fully User-Editable Tables

  • Mandate: 3 editable fields
  • User: 6 editable fields
  • FileItem: 1 editable field
  • Prompt: 2 editable fields
  • ChatMessage: 4 editable fields
  • ChatWorkflow: 2 editable fields

Partially User-Editable Tables

  • UserConnection: 3 editable fields (out of 11 total)
  • TaskAction: 2 editable fields (out of 13 total)
  • TaskItem: 4 editable fields (out of 12 total)

System-Managed Tables (No User Editable Fields)

  • Token, AuthEvent, SystemTable
  • FilePreview, FileData, ContentMetadata, ContentItem
  • ChatDocument, DocumentExchange, ExtractedContent
  • TaskResult, ChatStat, ChatLog
  • TaskHandover, TaskContext, ReviewContext
  • WorkflowResult, AiResult, CentralizedAiResponse

Transient/Display-Only Tables

  • ActionDocument, ActionResult, UserInputRequest
  • TaskStep, ReviewResult, TaskPlan

RBAC Implementation Notes

When implementing the RBAC system, focus on the Fully User-Editable Tables and Partially User-Editable Tables as these are where users will need different permission levels for different operations.

The System-Managed Tables should generally have read-only access for most users, with only system administrators having full access.

The Transient Tables are typically used for data transfer and don't need persistent storage permissions.