Skip to main content

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

Let us know what you think about this document :)