Last updated

The domain model most apps are built on

Mirrored from iblai/vibe Β· docs/domain-model.md. This page is generated β€” edit it in the repository, not here.

Three entities carry almost every custom app on the platform. Each row is the same thing seen four ways: what it is, the SDK hook or component, the skill with a screen (ui), and the headless skill (api). β˜… marks the families the platform team considers most important β€” they get the deepest skills.

Users

WhatDataSDKui skillapi skill
Identityusername, email, name, bio, image, language, social linksuseUserData, useUsername, Profile, UserProfileDropdown, useGetUserMetadataQuery / useUpdateUserMetadataEdxMutation/iblai-vibe-profile β˜…/iblai-api-profile β˜…
Careereducation, experience, rΓ©sumΓ©EducationTab, ExperienceTab, ResumeTab/iblai-vibe-profile/iblai-api-profile
Custom metadataone JSON object per user Γ— org β€” preferences, flags, onboarding, app stateuseGetUserPlatformMetadataQuery, useUpdateUserPlatformMetadataMutation; useUserSettings() in vibe-starter/iblai-vibe-user-metadata β˜…/iblai-api-profile-metadata β˜…
Memoriesglobal memories (every agent), the user's two toggles (capture / recall)useGetGlobalMemoriesQuery (+ create/update/delete), useGetUserMemorySettingsQuery / useUpdateUserMemorySettingsMutation; Profile Memory tab/iblai-vibe-memory-guide β˜…, /iblai-vibe-memory/iblai-api-agent-memory β˜…
Membership and rolewhich orgs (tenants[]), is_admin, policiesuseUserTenants, useIsAdmin, isTenantAdmin(), checkRbacPermission/iblai-vibe-admin, /iblai-vibe-rbac/iblai-api-management, /iblai-api-rbac
Conversationsown history and exportsHistory surface/iblai-vibe-history/iblai-api-agent-history
Analytics about a userlearning snapshot, time spentuseGetLearnerDetailsQuery, useTimeTrackingMutation/iblai-vibe-analytics β˜…/iblai-api-analytics β˜…
Notifications, purchases, spend statusinbox, subscriptions, cap zoneNotificationDropdown, PurchasesTab, useGetSpendCapStatusQuery/iblai-vibe-notification, /iblai-vibe-monetization-subscription/iblai-api-notification, /iblai-api-billing, /iblai-api-spend-caps

Agents

WhatDataSDKui skillapi skill
Createfrom a template β†’ unique_idserver route (/api/admin/agents in vibe-starter)/iblai-vibe-agent-create β˜…/iblai-api-agent-create
Settingsname, description, image, category, visibility (viewable_by_tenant_admins / _students / viewable_by_anyone), capability flags (anonymous, featured, LTI, attachments, voice, memory, multi-query RAG, forkable); fork; deleteAgentSettingsProvider + AgentSettingsTab; useGetMentorSettingsQuery, useEditMentorMutation (one multipart PUT of changed fields)/iblai-vibe-agent-setting β˜… (+ 23 tabs via /iblai-vibe-agent)/iblai-api-agent-setting β˜…
Behaviorprompts, LLM, tools, datasets (RAG), MCP connectors, skills, sandbox, voicethe matching Agent*Tab/iblai-vibe-agent-{prompt,llm,tool,dataset,mcp,skills,sandbox,voice}/iblai-api-agent-{prompt,llm,tool,dataset,mcp,skill,sandbox}
Guardrailssafety, privacy (PII), disclaimersAgentSafetyTab, AgentPrivacyTab, AgentDisclaimerTab/iblai-vibe-agent-{safety,privacy,disclaimer}/iblai-api-agent-{safety,privacy,disclaimer}
Memoryper-user Γ— agent memories by category (extraction prompts); shared agent knowledgeAgentMemoryTab; memory hooks/iblai-vibe-agent-memory β˜…/iblai-api-agent-memory β˜…
Access and reacheditor / chat / analytics roles; embed; API keys; LTIAgentAccessTab, AgentEmbedTab, AgentApiTab, AgentLtiTab/iblai-vibe-agent-{access,embed,api,lti}/iblai-api-agent-{access,embed}, /iblai-api-token
Conversationschat, sessions, history, support ticketsChat, AgentSearch, history and support tabs/iblai-vibe-agent-chat, -search, -history, -support/iblai-api-agent-session, -chat (MCP), -history, -support, /iblai-api-inference
Quality and costevals, grader, audit log, spend capAgentEvalsTab, AgentGraderTab, AgentAuditTab, AgentBillingTab/iblai-vibe-agent-{evals,grader,audit,billing}/iblai-api-agent-{eval,audit}, /iblai-api-spend-caps
Analytics about an agentusage, topics, transcripts, costs (mentor_unique_id)AnalyticsLayout tabs with mentorId/iblai-vibe-analytics β˜…/iblai-api-analytics β˜…

Organizations

WhatDataSDKui skillapi skill
Identity and brandingname, light/dark logo, support email, help center; the sign-in page's title/logo/copy (auth_web_*)Account β†’ OrganizationTab; /iblai-vibe-auth Step 2/iblai-vibe-account, /iblai-vibe-auth/iblai-api-org
Metadataone public JSON object: the OS's own settings (default agent, toggles, help URL) and your app's keys under apps.<slug>; PUT replaces β€” GET, merge, PUTuseGetTenantMetadataQuery, useUpdateTenantMetadataMutation, useTenantMetadata; useOrgSettings() in vibe-starter/iblai-vibe-org-metadata/iblai-api-org
Peopleusers (Admin/User + policies), groups, roles, policies, teams, alerts, invitations, SCIMAccount β†’ Management (Admin, UsersTab, RolesTab, PoliciesTab), InviteUserDialog/iblai-vibe-admin, /iblai-vibe-invite, /iblai-vibe-rbac/iblai-api-management, -rbac, -invite, -scim
IntegrationsLLM provider keys, data-source credentials, Platform API TokensAccount β†’ Integrations/iblai-vibe-account, /iblai-vibe-credential/iblai-api-integration, -token
Moneyplan, credits, auto-recharge; org / agent / user spend caps; item paywalls; app paywallCreditBalance, BillingTab, spend-cap hooks, MonetizationTab/iblai-vibe-pricing β†’ credit, billing, agent-billing, monetization*/iblai-api-billing, -spend-caps
Memory administrationany user's global memories and toggles; any agent's memoriesAccount targetTab="memory"/iblai-vibe-memory/iblai-api-agent-memory β˜…
Analytics about the orgusage, users, topics, transcripts, costs, audit, reportsAnalyticsLayout (no mentorId)/iblai-vibe-analytics β˜…, /iblai-vibe-agent-audit/iblai-api-analytics β˜…
Catalog and admissionscourses, programs, credentials, applicationscourse/application components/iblai-vibe-course-access, -course-create, -application/iblai-api-catalog, -course-create, -credential, -apply, …
Where it is administered todayos.ibl.ai β†’ Admin mode β†’ settingsβ€”/iblai-vibe-admin builds the same into your appthe api family

How it maps onto vibe-starter

EntityRouteHelper
The signed-in user/profile (Profile + AppPreferences)useUserSettings() β€” lib/iblai/metadata.ts
The app's agent/ (Chat), /agents, /setup (pick or create)config.defaultAgentId() β†’ org setting defaultAgentId
The org/admin/organization (OrganizationTab + OrgSettingsForm), /admin/users, /admin/billing, /admin/memory, /admin/analyticsuseOrgSettings(), isTenantAdmin(), requireAdmin()

Read next: auth-model.md for who can reach what, and skill-kinds.md for the ui / api split.

Copyright Β© ibl.ai | support@iblai.zendesk.com