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
idfields (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 mandatelanguage(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 systemexternalEmail(email, optional) - Email in external systemstatus(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 loginemail(email, required) - Email addressfullName(text, optional) - Full namelanguage(select, required) - Preferred language (de, en, fr, it)enabled(checkbox, optional) - Whether user is enabledprivilege(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 promptname(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 userlistFileId(list, optional) - List of file IDsuserLanguage(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 parametersuserMessage(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 taskrollbackOnFailure(boolean, optional) - Whether to rollback on failuredependencies(list, optional) - List of task IDs this task depends onfeedback(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 contentrole(text, required) - Role of the message senderstatus(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 objectivedependencies(list, optional) - List of dependenciessuccess_criteria(list, optional) - List of success criteriaestimated_complexity(text, optional) - Estimated complexityuserMessage(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 overviewuserMessage(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.