{"_id":"@egovernments/digit-ui-module-sandbox","_rev":"9-08196f4570ae9cc87d9d53852342b840","name":"@egovernments/digit-ui-module-sandbox","dist-tags":{"sandbox-0.1":"0.0.3","core-beta-1.9":"0.1.0-rc2","latest":"0.1.0"},"versions":{"0.0.1":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.0.1","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.0.1","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"},{"name":"nipunarora-egov","email":"thenipunaroracode@gmail.com"}],"dist":{"shasum":"d41980642b618f7c93b8d3d2eeab0c450f5d3ed7","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.0.1.tgz","fileCount":6,"integrity":"sha512-HVouvK/RwKNgxrglR8TZ2i4ekJ3JF4Wqz1rIzV20JwDDOoNYIXSH8uPSSJHLBGgCkh0NQkyTSt6qQsUM2t7/AA==","signatures":[{"sig":"MEUCIQD3/llduQBSUxCMSZvi0lduDTAOCNYIVKDmNOqte7voHwIgZw7D2HHVg0T1IEALVjYq4jMColNAfIt7LGgPt9Fn9yU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134523},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"description":"Sandbox","directories":{},"dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.0","@egovernments/digit-ui-react-components":"1.8.17"},"_hasShrinkwrap":false,"peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.0.1_1740113477503_0.289611638005995","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.0.2","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.0.2","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"},{"name":"nipunarora-egov","email":"thenipunaroracode@gmail.com"}],"dist":{"shasum":"2b45fa37d2542044398d87fd3bfd4f8e40fb719e","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.0.2.tgz","fileCount":4,"integrity":"sha512-IPRCY0v6DZRUvuEPADdTHPUONdyvKoCmUchFJ849oh+vuwBJSevSdll12twdTC1gBqelloatOVIrS5lIlalfUA==","signatures":[{"sig":"MEQCIDw9g1bMUy9psgLJoqgi0OjLsNGlDnrfvbcSIhzRkhEfAiB3qKWFW8+A82cnqSKktCut762od/UQyUeq4tViweahhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134523},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"_npmVersion":"6.14.18","description":"Sandbox","directories":{},"_nodeVersion":"14.21.3","dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.0","@egovernments/digit-ui-react-components":"1.8.19"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.0.2_1744276264847_0.013652022309098788","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.0.3","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.0.3","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"},{"name":"nipunarora-egov","email":"thenipunaroracode@gmail.com"}],"dist":{"shasum":"2ec02bb920145bd5e5b9a32aa8da96b0cd655908","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.0.3.tgz","fileCount":4,"integrity":"sha512-3Hf0/CA/25Z7594o6wkaeT7Ntp1Y0/xhhJAlFw1r3PS1Bq7WeIpJ5+x8PTfcL3ieJgMxuXQbrQldX1x/dhNgRg==","signatures":[{"sig":"MEUCIQDJO9JhqNBFvR8GEsjODImeZaZ069Qn+xtR3qxlFaOJUAIgObzseVNGNdvqqNfRbG+ZidEpQ/2C4Fq+4tIpCN6rgIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146213},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"_npmVersion":"6.14.18","description":"Sandbox","directories":{},"_nodeVersion":"14.21.3","dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.0","@egovernments/digit-ui-react-components":"1.8.19"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.0.3_1744776841079_0.8071006347163789","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc1":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.1.0-rc1","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.1.0-rc1","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"dist":{"shasum":"e9a9c5550b9095bc99c63fa06ce47b6a7519a814","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.1.0-rc1.tgz","fileCount":11,"integrity":"sha512-Rn/IFFnIzb3N4OGswPR4Ynr4MrFPxFFmV6bH7w6GNCrO22+0cjUyZFNcTmH46TD7uysaHwWfPGXZgxODNAHGdQ==","signatures":[{"sig":"MEQCIAtX+VbYgglcpPqYXibFNO8eXBYQluJIFlV9VW/CmfjwAiAGalmfB+cSp9Na6qvcSKLuX1bh9buUrBOjSml26UUukw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268484},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"_npmVersion":"6.14.18","description":"Sandbox","directories":{},"_nodeVersion":"14.21.3","dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.3","@egovernments/digit-ui-react-components":"1.9.0-rc1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.1.0-rc1_1761554486502_0.2566857511813294","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc2":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.1.0-rc2","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.1.0-rc2","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"dist":{"shasum":"1ab8d22ee23ccd56c8e9afb1386d773d000ad203","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.1.0-rc2.tgz","fileCount":11,"integrity":"sha512-5BDl2KsIjxdNFICFD2EWZ1Tl+gajzLpON1Hm3L4IgRnybsD+DCoQG1utPP44Wpq3YVu2RaiuUlwCttPG2oTuPg==","signatures":[{"sig":"MEUCIQC2gG6srOhtm+H0NhoA3ZWqxFkUCEzSvIx90v+A/OJ17AIgDxyPZY+yVZ5PYjGm1MaYL5lzkybEbW/+du1HV8WrUz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268615},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"_npmVersion":"6.14.18","description":"Sandbox","directories":{},"_nodeVersion":"14.21.3","dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.3","@egovernments/digit-ui-react-components":"1.9.0-rc2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.1.0-rc2_1761564407689_0.07106750774380477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@egovernments/digit-ui-module-sandbox","version":"0.1.0","author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-ui-module-sandbox@0.1.0","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"dist":{"shasum":"7bb7ab027794559af661cb530e31742909dc159b","tarball":"https://registry.npmjs.org/@egovernments/digit-ui-module-sandbox/-/digit-ui-module-sandbox-0.1.0.tgz","fileCount":11,"integrity":"sha512-JrtepVW7oW/QK1ZW2I4/ZZSuBxlA5p4cO/W38hmJu5Bis6mjNmKezD903VoPNfqZI85EV0lEndDhs2zRBhICtA==","signatures":[{"sig":"MEQCIDzrQJIZxF84i3nNCn5dE1fGT0GtYXE7VJQKbsXL+2W+AiASHnnEx8xP2fvJNCqEamY6Fc3bfRg1GbpM5rTYhOyQsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268607},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/Module.js","scripts":{"build":"microbundle-crl --compress --no-sourcemap --format cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepublish":"yarn build"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"_npmVersion":"6.14.18","description":"Sandbox","directories":{},"_nodeVersion":"14.21.3","dependencies":{"react":"17.0.2","react-dom":"17.0.2","react-query":"3.6.1","react-i18next":"11.16.2","react-hook-form":"6.15.8","react-date-range":"^1.4.0","react-router-dom":"5.3.0","@egovernments/digit-ui-components":"0.2.3","@egovernments/digit-ui-react-components":"1.9.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"17.0.2","react-router-dom":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/digit-ui-module-sandbox_0.1.0_1761624993360_0.6813627352346336","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-02-21T04:51:17.398Z","modified":"2026-05-22T06:38:03.823Z","0.0.1":"2025-02-21T04:51:17.740Z","0.0.2":"2025-04-10T09:11:05.058Z","0.0.3":"2025-04-16T04:14:01.246Z","0.1.0-rc1":"2025-10-27T08:41:26.731Z","0.1.0-rc2":"2025-10-27T11:26:47.902Z","0.1.0":"2025-10-28T04:16:33.541Z"},"author":{"name":"Jagankumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","description":"Sandbox","maintainers":[{"email":"jagan.kumar@egov.org.in","name":"jagankumar-egov"},{"email":"sathish.p@egovernments.org","name":"sathishp-egov"}],"readme":"# @egovernments/digit-ui-module-sandbox\n\n## Version: 0.1.0 🎉 NEW MODULE\n**Release Date:** October 23, 2025\n\n## 📦 Installation\n\n```bash\nnpm install --save @egovernments/digit-ui-module-sandbox@0.1.0\n```\n\n## 🎉 What's New - Complete Sandbox Environment\n\n### 🏗️ Brand New Module\nThis is a **completely new module** providing a comprehensive sandbox environment for DIGIT platform development, testing, and tenant management.\n\n### 🚀 Major Features\n- **🏢 Complete Tenant Management System**: Full CRUD operations for tenant lifecycle\n- **⚙️ Configuration Management**: Upload, validate, and manage system configurations\n- **🔧 Module Management**: Dynamic module selection and configuration\n- **🧪 Testing Environment**: Comprehensive testing and validation tools\n- **🎨 Rich UI Components**: Interactive cards, forms, and management interfaces\n\n## 📋 Core Features\n\n### 🏢 Tenant Management System\n- **TenantCreate**: Complete tenant creation workflow with form validation\n- **TenantUpdate**: Advanced tenant modification capabilities\n- **TenantView**: Comprehensive tenant information display\n- **TenantConfigUpload**: Configuration file management and validation\n\n### ⚙️ Configuration Management\n- **ConfigUploaderComponent**: Drag-drop configuration file uploads\n- **LogoUploaderComponent**: Brand logo management system\n- **PUCAR Integration**: Dedicated create/search/update configurations\n- **Validation System**: Configuration validation and error handling\n\n### 🔧 Application Management System\n- **ApplicationHome**: Central dashboard for application management\n- **ModuleMasterTable**: Comprehensive module overview and management\n- **ModuleSelect**: Dynamic module selection interface\n- **SetupMaster**: Master data configuration and setup\n\n### 🎨 Rich UI Component Library\n- **SandboxCard**: Main sandbox navigation component\n- **ModuleCard**: Individual module representation and interaction\n- **SandboxTestComponent**: Testing and validation interface\n\n### 🖼️ Visual Assets\nComplete SVG icon library included:\n- `Citizen.svg` - Citizen portal representation\n- `Employee.svg` - Employee interface icons\n- `bar_chart.svg`, `graph.svg` - Analytics visualization\n- `feature_search.svg` - Advanced search capabilities\n- `calculate.svg` - Computation features\n- `chat.svg` - Communication features\n\n## 🔧 Configuration System\n\nThe Sandbox module supports a comprehensive configuration system with multiple configuration types for tenant management and demo environments.\n\n### 1. Global Configuration (globalConfigs.getConfig)\n\nGlobal configurations that affect the entire sandbox module behavior:\n\n| Config Key | Type | Default | Description | Usage |\n|------------|------|---------|-------------|--------|\n| `OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT` | Boolean | `false` | Multi-tenant support for sandbox operations | Tenant context switching in sandbox |\n| `MULTI_ROOT_TENANT` | Boolean | `false` | Enables multi-root tenant support | Enhanced tenant management |\n| `contextPath` | String | `'sandbox-ui'` | Context path for sandbox application | Routing and navigation |\n| `configModuleName` | String | `'commonUiConfig'` | Configuration module name | MDMS configuration |\n| `SANDBOX_AUTO_TENANT_CREATION` | Boolean | `false` | Enable automatic tenant creation | Demo environment setup |\n| `SANDBOX_MAX_TENANTS` | Number | `50` | Maximum tenants per sandbox | Resource limitation |\n| `SANDBOX_CONFIG_VALIDATION` | Boolean | `true` | Enable configuration validation | Quality assurance |\n\n```javascript\n// Global Configuration Example\nconst getConfig = (key) => {\n  switch(key) {\n    case 'OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT':\n      return true; // Enable multi-tenant sandbox environment\n    case 'MULTI_ROOT_TENANT':\n      return true; // Enable multi-root tenant support\n    case 'contextPath':\n      return 'sandbox-ui'; // Set sandbox context path\n    case 'configModuleName':\n      return 'commonUiConfig'; // Set configuration module\n    case 'SANDBOX_AUTO_TENANT_CREATION':\n      return false; // Disable auto tenant creation\n    case 'SANDBOX_MAX_TENANTS':\n      return 25; // Limit to 25 tenants\n    case 'SANDBOX_CONFIG_VALIDATION':\n      return true; // Enable validation\n    default:\n      return undefined;\n  }\n};\n```\n\n### 2. Component Props Configuration\n\nDirect configuration passed as props to sandbox components:\n\n```javascript\n// SandboxCard Component Configuration\n<SandboxCard\n  config={{\n    title: \"Tenant Management\",\n    description: \"Manage tenant configurations and settings\",\n    icon: \"tenant\",\n    features: [\"create\", \"update\", \"delete\", \"configure\"],\n    permissions: [\"SANDBOX_ADMIN\"]\n  }}\n  onClick={navigateToTenantManagement}\n/>\n\n// TenantCreate Component Configuration\n<TenantCreate\n  config={{\n    validationRules: {\n      tenantCode: /^[a-z0-9.-]+$/,\n      tenantName: { minLength: 3, maxLength: 50 },\n      logoSize: { maxSize: 2048000 } // 2MB\n    },\n    defaultModules: [\"core\", \"workbench\", \"utilities\"],\n    autoSave: true,\n    progressTracking: true\n  }}\n  onTenantCreated={handleTenantCreation}\n/>\n\n// ConfigUploader Component Configuration\n<ConfigUploaderComponent\n  config={{\n    supportedFormats: ['.json', '.yaml', '.yml'],\n    maxFileSize: 10485760, // 10MB\n    validationSchema: \"sandbox-config-v1\",\n    enablePreview: true,\n    autoValidate: true\n  }}\n  onUpload={handleConfigUpload}\n/>\n```\n\n### 3. MDMS Configuration\n\nConfiguration stored in MDMS for dynamic sandbox behavior:\n\n```json\n{\n  \"tenantId\": \"pg\",\n  \"moduleName\": \"sandbox-config\",\n  \"SandboxConfig\": [\n    {\n      \"module\": \"TenantManagement\",\n      \"config\": {\n        \"maxTenantsPerUser\": 5,\n        \"tenantCodePattern\": \"^[a-z][a-z0-9.-]*[a-z0-9]$\",\n        \"requiredModules\": [\"core\"],\n        \"optionalModules\": [\"workbench\", \"utilities\", \"hrms\"],\n        \"tenantTypes\": [\"demo\", \"development\", \"testing\"]\n      }\n    },\n    {\n      \"module\": \"ConfigurationManagement\",\n      \"config\": {\n        \"allowedConfigTypes\": [\"json\", \"yaml\"],\n        \"maxConfigSize\": 10485760,\n        \"validationRules\": {\n          \"strictMode\": true,\n          \"allowUnknownFields\": false\n        },\n        \"backupRetention\": 30\n      }\n    },\n    {\n      \"module\": \"ModuleManagement\",\n      \"config\": {\n        \"availableModules\": [\n          {\n            \"code\": \"core\",\n            \"name\": \"Core Module\",\n            \"version\": \"1.9.0\",\n            \"required\": true\n          },\n          {\n            \"code\": \"workbench\",\n            \"name\": \"Workbench Module\",\n            \"version\": \"1.9.0\",\n            \"dependencies\": [\"core\"]\n          }\n        ]\n      }\n    }\n  ]\n}\n```\n\n### 4. UI Customizations (Digit.Customizations)\n\nCustomizations for sandbox components and workflows:\n\n```javascript\n// Sandbox Module Customizations\nDigit.Customizations = {\n  \"sandbox\": {\n    \"TenantCreate\": {\n      \"customValidators\": {\n        \"uniqueTenantCode\": async (code) => {\n          const exists = await checkTenantExists(code);\n          return !exists;\n        },\n        \"domainValidator\": (domain) => /^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(domain)\n      },\n      \"formSteps\": [\n        {\n          \"key\": \"basic\",\n          \"label\": \"Basic Information\",\n          \"fields\": [\"tenantCode\", \"tenantName\", \"description\"]\n        },\n        {\n          \"key\": \"modules\",\n          \"label\": \"Module Selection\",\n          \"fields\": [\"selectedModules\", \"moduleConfigs\"]\n        },\n        {\n          \"key\": \"branding\",\n          \"label\": \"Branding & Assets\",\n          \"fields\": [\"logo\", \"theme\", \"customStyles\"]\n        }\n      ],\n      \"autoSaveInterval\": 30000\n    },\n    \"TenantManagement\": {\n      \"listView\": {\n        \"columns\": [\n          {\n            \"key\": \"tenantCode\",\n            \"label\": \"Tenant Code\",\n            \"sortable\": true,\n            \"filterable\": true\n          },\n          {\n            \"key\": \"status\",\n            \"label\": \"Status\",\n            \"formatter\": \"status\",\n            \"filters\": [\"active\", \"inactive\", \"suspended\"]\n          },\n          {\n            \"key\": \"modules\",\n            \"label\": \"Modules\",\n            \"formatter\": \"moduleList\"\n          },\n          {\n            \"key\": \"lastModified\",\n            \"label\": \"Last Modified\",\n            \"sortable\": true,\n            \"formatter\": \"date\"\n          }\n        ],\n        \"actions\": [\n          {\n            \"key\": \"edit\",\n            \"label\": \"Edit\",\n            \"icon\": \"edit\",\n            \"permission\": \"SANDBOX_TENANT_EDIT\"\n          },\n          {\n            \"key\": \"configure\",\n            \"label\": \"Configure\",\n            \"icon\": \"settings\",\n            \"permission\": \"SANDBOX_TENANT_CONFIG\"\n          },\n          {\n            \"key\": \"delete\",\n            \"label\": \"Delete\",\n            \"icon\": \"delete\",\n            \"permission\": \"SANDBOX_TENANT_DELETE\",\n            \"confirmDialog\": true\n          }\n        ]\n      }\n    },\n    \"ConfigUploader\": {\n      \"uploadConfig\": {\n        \"dragDropArea\": {\n          \"height\": 200,\n          \"acceptMessage\": \"Drop configuration files here\",\n          \"rejectMessage\": \"Invalid file format\"\n        },\n        \"validationRules\": {\n          \"json\": {\n            \"parser\": \"JSON.parse\",\n            \"requiredFields\": [\"module\", \"version\"]\n          },\n          \"yaml\": {\n            \"parser\": \"yaml.parse\",\n            \"requiredFields\": [\"module\", \"version\"]\n          }\n        },\n        \"previewConfig\": {\n          \"enabled\": true,\n          \"maxLines\": 100,\n          \"syntax\": \"json\"\n        }\n      }\n    },\n    \"ModuleManager\": {\n      \"moduleCards\": {\n        \"layout\": \"grid\",\n        \"cardsPerRow\": 3,\n        \"showDependencies\": true,\n        \"showVersions\": true,\n        \"enableBulkActions\": true\n      },\n      \"dependencyManagement\": {\n        \"autoResolveDependencies\": true,\n        \"showDependencyTree\": true,\n        \"warnOnConflicts\": true\n      }\n    }\n  }\n};\n```\n\n## 💻 Usage\n\n### Basic Setup\n\nAdd the dependency to your `package.json`:\n\n```json\n{\n  \"@egovernments/digit-ui-module-sandbox\": \"^0.1.0\"\n}\n```\n\n### In your App.js\n\n```jsx\nimport { initSandboxComponents } from \"@egovernments/digit-ui-module-sandbox\";\n\n// Enable sandbox module\nconst enabledModules = [\"sandbox\"];\n\n// Initialize sandbox components\nconst initDigitUI = () => {\n  initSandboxComponents();\n};\n```\n\n### Using Sandbox Components\n\n```jsx\n// Sandbox Card for navigation\nimport { SandboxCard } from \"@egovernments/digit-ui-module-sandbox\";\n\n<SandboxCard\n  title=\"Tenant Management\"\n  description=\"Manage tenant configurations\"\n  icon=\"tenant\"\n  onClick={navigateToTenantManagement}\n/>\n\n// Module Card for module management\nimport { ModuleCard } from \"@egovernments/digit-ui-module-sandbox\";\n\n<ModuleCard\n  moduleName=\"HRMS\"\n  moduleVersion=\"1.9.0\"\n  status=\"active\"\n  onManage={handleModuleManagement}\n/>\n\n// Configuration Uploader\nimport { ConfigUploaderComponent } from \"@egovernments/digit-ui-module-sandbox\";\n\n<ConfigUploaderComponent\n  onUpload={handleConfigUpload}\n  supportedFormats={['.json', '.yaml']}\n  maxSize=\"10MB\"\n/>\n```\n\n### MDMS Configuration\n\nEnable sandbox in MDMS by adding this configuration:\n\n```json\n{\n  \"module\": \"digit-sandbox\",\n  \"code\": \"sandbox\",\n  \"active\": true,\n  \"order\": 1,\n  \"tenants\": [\n    {\n      \"code\": \"your-tenant-code\"\n    }\n  ]\n}\n```\n\n## 🏗️ Architecture & Components\n\n### 📄 Configuration Files\n- **moduleMasterConfig.js**: Module-specific configuration management\n- **setupMasterConfig.js**: System setup and initialization configurations\n- **pucarCreateConfig.js**: PUCAR system creation workflows\n- **pucarSearchConfig.js**: Advanced search configurations for PUCAR\n- **tenantCreateConfig.js**: Tenant creation form configurations\n- **tenantSearchConfig.js**: Tenant search and filtering options\n- **tenantUpdateConfig.js**: Tenant modification form layouts\n\n### 🛠️ Utility Systems\n- **TenantCreateUtil.js**: Helper functions for tenant creation\n- **TenantUpdateUtil.js**: Utilities for tenant modification workflows\n- **createUtils.js**: General creation and validation utilities\n- **index.js**: Centralized utility exports and management\n\n### 🔄 Page Structure\n- **Employee Interface**: Complete employee routing system\n- **SandboxCreate.js**: Resource creation workflows\n- **SandboxSearch.js**: Advanced search and filtering capabilities\n- **SandboxResponse.js**: Response handling and display\n\n## 🎯 Key Capabilities\n\n### 🏢 Tenant Lifecycle Management\n- **Create Tenants**: Step-by-step tenant creation with validation\n- **Update Configurations**: Modify tenant settings and configurations\n- **View Details**: Comprehensive tenant information display\n- **Manage Assets**: Logo and branding management per tenant\n\n### ⚙️ Configuration Management\n- **Upload Configs**: Drag-drop configuration file uploads\n- **Validate Settings**: Real-time configuration validation\n- **Manage Templates**: Template creation and management\n- **Export/Import**: Configuration export and import functionality\n\n### 🔧 Module Management\n- **Dynamic Selection**: Choose and configure modules per tenant\n- **Version Management**: Handle different module versions\n- **Dependency Tracking**: Manage module dependencies\n- **Health Monitoring**: Monitor module health and status\n\n### 🧪 Testing & Validation\n- **Environment Testing**: Test configurations in sandbox environment\n- **Data Validation**: Validate data integrity and formats\n- **Performance Testing**: Monitor performance metrics\n- **Error Simulation**: Simulate error conditions for testing\n\n## 🎨 User Interface\n\n### 🖥️ Responsive Design\n- **Mobile-First**: Optimized for mobile devices\n- **Tablet Support**: Enhanced tablet experience\n- **Desktop Full**: Complete desktop functionality\n- **Cross-Browser**: Tested across major browsers\n\n### 🎯 User Experience\n- **Intuitive Navigation**: Easy-to-use interface design\n- **Visual Feedback**: Clear status indicators and progress tracking\n- **Error Handling**: User-friendly error messages and guidance\n- **Accessibility**: WCAG compliant design\n\n## 🔄 Migration & Setup\n\n### Initial Setup\n1. **Install Package**: `npm install @egovernments/digit-ui-module-sandbox@0.1.0`\n2. **Configure MDMS**: Add sandbox module to tenant configuration\n3. **Update App.js**: Initialize sandbox components\n4. **Set Global Configs**: Configure sandbox-specific settings\n\n### Development Workflow\n1. **Environment Setup**: Configure sandbox environment\n2. **Tenant Creation**: Create development tenants\n3. **Module Configuration**: Configure required modules\n4. **Testing**: Validate configurations and functionality\n\n## 🧪 Testing\n\n### Sandbox Testing\n```javascript\n// Enable sandbox testing features\nwindow.globalConfigs.getConfig = (key) => {\n  if (key === 'OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT') return true;\n  if (key === 'MULTI_ROOT_TENANT') return true;\n  if (key === 'contextPath') return 'sandbox-ui';\n};\n```\n\n### Feature Testing Checklist\n- [ ] Tenant creation workflow\n- [ ] Configuration upload and validation\n- [ ] Module selection and management\n- [ ] Logo and asset management\n- [ ] Multi-tenant switching\n- [ ] Search and filtering functionality\n\n## 🔗 Dependencies\n\n### Required Dependencies\n- `@egovernments/digit-ui-react-components`: ^1.8.0\n- `@egovernments/digit-ui-components`: ^1.0.0\n- `react`: ^17.0.2\n- `react-dom`: ^17.0.2\n- `react-router-dom`: ^5.3.0\n\n### Peer Dependencies\n- `lodash`: ^4.17.21\n- `axios`: ^0.24.0\n\n## 🐛 Known Issues & Solutions\n\n### Common Issues\n1. **Configuration Upload Fails**: Ensure file format is correct (JSON/YAML)\n2. **Tenant Creation Error**: Verify all required fields are filled\n3. **Module Loading Issues**: Check MDMS configuration and module availability\n4. **Asset Upload Problems**: Verify file size and format requirements\n\n## 📊 Performance\n\n- **Fast Loading**: Optimized component loading\n- **Efficient Rendering**: Minimal re-renders with proper state management\n- **Memory Management**: Proper cleanup of resources\n- **Bundle Size**: Optimized bundle size for production\n\n## 🌐 Integration\n\n### Platform Integration\n- **Core Integration**: Seamless integration with Core v1.9.0\n- **Multi-Tenant**: Full multi-tenant architecture support\n- **MDMS Integration**: Dynamic configuration through MDMS\n- **Workflow Integration**: Integration with platform workflows\n\n### External Services\n- **File Services**: File upload and management integration\n- **User Services**: User authentication and authorization\n- **Tenant Services**: Tenant management and validation\n- **Configuration Services**: Dynamic configuration management\n\n## 📚 Explore & Demo\n\n### Live Demo\nVisit our sandbox portal to explore the features:\n[Sandbox Demo](https://sandbox.digit.org/sandbox-ui)\n\n### Documentation\n- [Developer Guide](https://core.digit.org/guides/developer-guide/ui-developer-guide/digit-ui)\n- [Sandbox Documentation](https://sandbox.digit.org/platform/functional-specifications/sandbox-ui)\n- [API Documentation](https://core.digit.org/platform/core-services/tenant-management)\n\n## 🤝 Contributors\n\n- [jagankumar-egov](https://github.com/jagankumar-egov)\n- [nabeel-egov](https://github.com/nabeel-egov)\n- [mithun-egov](https://github.com/mithun-egov)\n- [aaradhya-egov](https://github.com/aaradhya-egov)\n\n## 🔧 Maintainer\n\n- [jagankumar-egov](https://www.github.com/jagankumar-egov)\n\n## 📄 License\n\nMIT\n\n---\n\n### Published from DIGIT Frontend\n[DIGIT Frontend Repository](https://github.com/egovernments/DIGIT-Frontend/tree/develop)\n\n![DIGIT Logo](https://s3.ap-south-1.amazonaws.com/works-dev-asset/mseva-white-logo.png)","readmeFilename":"README.md"}