# Digital product upload > --- ## Application Context This page is part of a multi-page Dash application with 47 total pages. **Related Pages:** - Home (`/`) - About (`/about`) - Achievement Factory (`/admin/achievement-factory`) - Affiliate dashboard (`/admin/affiliate`) - Api cost (`/admin/api-costs`) ## Page Purpose - **Data Input**: Contains form elements for user data entry - **Interactive**: Responds to user interactions with dynamic updates ## Interactive Elements This page contains **16 interactive components** with **686 callback(s)** that respond to user actions. **User Inputs:** - TextInput (ID: `dp-api-component-name`) - e.g., DashDock, DashPlanet - Select (ID: `dp-api-key-type`) - Select (ID: `dp-api-expiration`) - Select (ID: `dp-existing-file-select`) - Choose from downloads/ folder - TextInput (ID: `dp-file-version`) - 1.0.0 - Select (ID: `dp-license-type`) - Select (ID: `dp-tutorial-selector`) - Select tutorial to grant access to - Select (ID: `dp-tutorial-expiration`) - TextInput (ID: `dp-product-name`) - Enter product name - Textarea (ID: `dp-product-description`) - Describe what the customer will receive... ## Key Content **Additional Content:** - Digital Product Upload - Create and manage API keys, downloads, and tutorial access - Admin Only - Product Type - api_key - API Key Configuration - Component Name - e.g., DashDock, DashPlanet - Component ID - Unique numeric ID - License Type - single - License Duration - Download Configuration - existing - Select File - Choose from downloads/ folder - Drag & Drop or Click to Upload - ZIP files only, max 100MB - Version - 1.0.0 - License Type - perpetual - Tutorial Configuration - Tutorial Folder *... and 40 more items* ## Component Breakdown **Total Components**: 201 - Interactive: 16 - Static/Display: 185 **Component Types:** - Text: 21 - Stack: 16 - Group: 14 - DashIconify: 12 - Div: 11 - GridCol: 10 - Paper: 8 - Title: 7 - ThemeIcon: 7 - Select: 7 - Divider: 6 - Grid: 5 - Badge: 4 - TextInput: 4 ## Data Flow & Callbacks This page has **686 callback(s)** that handle user interactions: **Callback 1:** - Updates: `clerk-auth-store.data@169c2f5349eb3b03b6fefb08477eaeae4ccaefa4bbf59b810f8c31c00b7832b8` - Triggered by: `{'id': 'clerk-auth-store', 'property': 'modified_timestamp'}` - Uses state from: `{'id': 'clerk-auth-store', 'property': 'data'}` **Callback 2:** - Updates: `..clerk-user-avatar.style...clerk-login-button.style...clerk-logout-menu-item.style...clerk-profile-button.style...clerk-menu-divider.style...clerk-user-info.children...clerk-user-info.style..` - Triggered by: `{'id': 'clerk-auth-store', 'property': 'data'}` **Callback 3:** - Updates: `..clerk-auth-store.data...clerk-auth-check-interval.disabled..` - Triggered by: `{'id': 'clerk-auth-check-interval', 'property': 'n_intervals'}` - Uses state from: `{'id': 'clerk-auth-store', 'property': 'data'}` **Callback 4:** - Updates: `clerk-menu-dropdown.style@e41fd41eb8c8e4b6ab94e235a6704339957888c599318c2601dbb52d85c2ddee` - Triggered by: `{'id': 'clerk-user-avatar', 'property': 'n_clicks'}` **Callback 5:** - Updates: `..clerk-auth-store.data@6101b0a695114053948bc2d52f58e0ef097a0b7cdd63fecc7c81d3a90e3af65e...clerk-auth-check-interval.disabled@6101b0a695114053948bc2d52f58e0ef097a0b7cdd63fecc7c81d3a90e3af65e..` - Triggered by: `{'id': 'clerk-logout-menu-item', 'property': 'n_clicks'}` **Callback 6:** - Updates: `clerk-profile-button.n_clicks@69efe506bb568a315d92861bedc3afd72051a5654ce4f04b58d7549bb549dac9` - Triggered by: `{'id': 'clerk-profile-button', 'property': 'n_clicks'}` **Callback 7:** - Updates: `..clerk-login-button.n_clicks@5774fa17132012eb9e85f27b7c7c7f1f23a7c91bf093af2959be730895b54ce3...clerk-auth-check-interval.disabled@5774fa17132012eb9e85f27b7c7c7f1f23a7c91bf093af2959be730895b54ce3..` - Triggered by: `{'id': 'clerk-login-button', 'property': 'n_clicks'}` - Uses state from: `{'id': 'clerk-auth-check-interval', 'property': 'disabled'}` **Callback 8:** - Updates: `clerk-auth-menu-container.className` - Triggered by: `{'id': 'url', 'property': 'pathname'}` **Callback 9:** - Updates: `global-cart-store.data@f38e13db842db32fa2fdf1ddb33eea69456442cfeec128ad029f53f0a1df3b08` - Triggered by: `{'id': '{"index":["ALL"],"type":"drawer-increase-qty"}', 'property': 'n_clicks'}`, `{'id': '{"index":["ALL"],"type":"drawer-decrease-qty"}', 'property': 'n_clicks'}`, `{'id': '{"index":["ALL"],"type":"drawer-remove-item"}', 'property': 'n_clicks'}` - Uses state from: `{'id': 'global-cart-store', 'property': 'data'}` **Callback 10:** - Updates: `clerk-login-button.n_clicks@6dca260ebd8b73c8ccad077b2a9fb3601cbf3bfab1aac1b2af452efa64fb964f` - Triggered by: `{'id': '{"page":["ALL"],"type":"signin-btn"}', 'property': 'n_clicks'}` *... and 676 more callback(s)* ## Technical Details - **Path**: `/admin/digital-product-upload` - **Max Component Depth**: 13 - **Has Important Sections**: No - **Full Architecture**: Available at `/admin/digital-product-upload/page.json` - **Global App Architecture**: Available at `/architecture.txt` --- ## Summary The **Digital product upload** page is accessible at `/admin/digital-product-upload`. It contains 16 interactive component(s) that allow users to input data and trigger 686 callback(s). --- *Generated with https://pip-install-python.com | dash-improve-my-llms hook* Pip Install Python LLC | https://plotly.pro