انتقل للمحتوى الرئيسي
الإصدار: 1.0.0-beta

نموذج البيانات

PostgreSQL 16 database schema with 45+ SQLModel entities.

Entity Relationship نظرة عامة

Core Models

Organization

ColumnTypeDescription
idint (PK)Organization ID
namevarcharOrganization name
subscription_tiervarcharessentials/professional/enterprise/sovereign
deployment_modelvarcharshared_saas/private_tenant/on_premise
active_modulesjsonList of enabled modules
max_usersintTier user limit
max_storage_gbintTier storage limit
ai_tokens_monthlyintTier AI token limit
license_keyvarcharRS256 JWT license
license_expiryvarcharLicense expiration
is_activeboolActive status
retention_daysintData retention period

User (via Keycloak)

Managed through Keycloak OIDC. AIIA stores:

ColumnTypeDescription
idint (PK)User ID
usernamevarcharKeycloak username
emailvarcharEmail address
org_idint (FK)Organization
role_idint (FK)Assigned role
is_activeboolActive status

Engagement

ColumnTypeDescription
idint (PK)Engagement ID
org_idint (FK)Organization
titlevarcharEngagement title
typevarcharCompliance/Operational/Financial/IT/Special
statusvarchardraft/planned/fieldwork/reporting/review/final/closed
lead_auditor_idint (FK)Lead auditor
start_date / end_datedateTimeline
methodology_idint (FK)Selected methodology

Workpaper

ColumnTypeDescription
idint (PK)Workpaper ID
org_idint (FK)Organization
engagement_idint (FK)Parent engagement
titlevarcharWorkpaper title
contenttextMarkdown content
statusvarchardraft/in_review/reviewed
preparer_idintPreparer user
reviewer_idintAssigned reviewer
versionintCurrent version number

Finding

ColumnTypeDescription
idint (PK)Finding ID
org_idint (FK)Organization
engagement_idint (FK)Parent engagement
titlevarcharFinding title
conditiontextWhat is happening
criteriatextWhat should happen
causetextWhy the gap exists
effecttextRisk/impact
recommendationtextHow to fix
severityvarcharcritical/high/medium/low
statusvarchardraft/management_response/final/closed

Evidence

ColumnTypeDescription
idint (PK)Evidence ID
org_idint (FK)Organization
filenamevarcharOriginal filename
file_hashvarcharSHA-256 hash
file_sizeintSize in bytes
mime_typevarcharFile type
storage_pathvarcharMinIO object path
scan_statusvarcharclean/infected/pending
uploader_idintWho uploaded
uploaded_attimestampWhen uploaded

KRI / Monitoring

ColumnTypeDescription
idint (PK)KRI ID
org_idint (FK)Organization
namevarcharKRI name
data_sourcevarcharSource table/connector
calculationtextSQL/formula
schedulevarcharCron expression
green_maxfloatGreen zone upper bound
amber_maxfloatAmber zone upper bound
current_valuefloatLatest calculated value
statusvarchargreen/amber/red

AuditLogEvent

ColumnTypeDescription
idint (PK)Event ID
org_idint (FK)Organization
user_idintActing user
usernamevarcharUsername
actionvarcharCREATE/UPDATE/DELETE/EXPORT/AI_ACTION
resource_typevarcharEntity type
resource_idvarcharEntity ID
detailsjsonAction details
ip_addressvarcharClient IP
created_attimestampEvent time

Multi-Tenancy

All tenant-scoped tables include org_id with RLS policies:

  • 19 RLS policies enforce data isolation at database level
  • Session variable app.current_org_id set per request
  • OrgScopedDB dependency injects the variable automatically

Full Model List

45+ models across:

CategoryModels
CoreOrganization, User, Role, Permission, AuditLogEvent
EngagementEngagement, Phase, Milestone, ReviewPoint, Signoff
FieldworkWorkpaper, TestProcedure, Evidence, Sampling
FindingsFinding, FindingVersion, ActionPlan, RemediationEvidence
PlanningAnnualPlan, PlanItem, PlanVersion
UniverseAuditUniverseItem, Risk, Control, RiskControlMapping
MonitoringKRI, KRIThreshold, KRIDataSource, MonitoringTest, Alert, Exception
ReportingReport, ReportVersion, ReportTemplate
PBCPBCRequest, PBCRequestItem
QAQAReview, QATemplate, QAChecklistItem
ComplianceComplianceFramework, NCAControl, PDPLRequirement
AIAIModelConfig, AIPrompt, AIPromptVersion, AIRequest, AIResult
IntegrationIntegrationConnector, Webhook, DataRefresh, APIKey
BillingBillingAccount, UsageRecord, Invoice, TenantInfrastructure
SystemNotification, NotificationPreference, SSO, Escalation