Managing Embedded User-Generated Objects in Development
Introduction
When your embed users create personal and shared dashboards through Embedded Analytics, these User-Generated Objects (UGOs) are automatically stored in your Development environment as code files. This guide helps administrators understand, monitor, and manage these objects effectively.
Prerequisites
Git Version Control Setup
UGO creation requires explicit Git integration to be enabled because all user-generated dashboards must be persisted in your Git repository.
Required Git Configuration:
- Enable explicit Git integration in Holistics
- If you're using external Git, please ensure:
- Git repository with write access
- Disable protected branch restrictions for the branch where UGOs are stored
Understanding UGO Storage
Folder Structure Overview
UGOs are organized in a specific hierarchy within your AML codebase:
📦 AML Studio
┗ 📂 modules/
┗ 📂 embedding/
┣ 📂 org_${embed_org_id}/
┃ ┣ 📂 shared_workspace/
┃ ┃ ┗ 📜 ${uname_with_postfix}.page.aml
┃ ┗ 📂 personal_workspace/
┃ ┗ 📂 user_${embed_user_id}/
┃ ┗ 📜 ${uname_with_postfix}.page.aml
┗ 📂 org_${another_org_id}/
┣ 📂 shared_workspace/
┗ 📂 personal_workspace/
File Organization Details
Organization's Shared Workspace:
- Path:
modules/embedding/org_${org_id}/shared_workspace/
- Contains: Dashboards in organization org_id's shared workspace
- Folder only created when users with "editor" role create dashboards in organization's shared workspace
Personal Workspace:
- Path:
modules/embedding/org_${org_id}/personal_workspace/user_${user_id}/
- Contains: Personal dashboards of user_id in organization org_id
- Folder only created when personal workspace is enabled and users actually create personal dashboards
Default Organization:
When embed_org_id
is empty, personal dashboards will be stored in modules/embedding/org_*DEFAULT*ORG_/personal_workspace/user_${user_id}/
. This special organization only supports personal workspace (no shared workspace available).
Important Storage Principle: Users belong to organizations, so personal workspace folders are nested within the organization structure. This ensures proper data isolation between different organizations. For detailed security architecture explanation, see Getting Started - Workspace Security Isolation.
Dashboard File Naming Conventions
- Format:
${uname_with_postfix}.page.aml
- The
uname_with_postfix
is a automatically generated from dashboard title & a unique string to ensure the file/object name is unique
Viewing and Managing UGOs
UGO Management Guidelines
UGO Storage Purpose:
- Code storage for dependencies management and refactoring
- Admin visibility when modeling changes break UGOs
- UGO ownership/metadata stored in database, not files
What Admins Can Do:
- ✅ View and edit file contents: Dashboard titles, descriptions, settings, visualizations, layouts
- ✅ Update references: Fix dataset/field references when modeling changes
What Admins Cannot Do:
- ❌ File operations: Create, rename, move, or delete UGO files in UI
- ❌ Structure changes: Modify folder organization or file names
- ❌ Manual creation: New files won't appear in user workspace