Skip to content

Instantly share code, notes, and snippets.

@nhathoang989
Created April 9, 2026 13:05
Show Gist options
  • Select an option

  • Save nhathoang989/7111d5dfaa2d8569d58aa6c28fdcfcdb to your computer and use it in GitHub Desktop.

Select an option

Save nhathoang989/7111d5dfaa2d8569d58aa6c28fdcfcdb to your computer and use it in GitHub Desktop.
Repository Wiki — generated by GitNexus
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mixcore-v3 — Wiki</title>
<script src="https://cdn.jsdelivr.net/npm/marked@11.0.0/marked.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js"></script>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{
--bg:#ffffff;--sidebar-bg:#f8f9fb;--border:#e5e7eb;
--text:#1e293b;--text-muted:#64748b;--primary:#2563eb;
--primary-soft:#eff6ff;--hover:#f1f5f9;--code-bg:#f1f5f9;
--radius:8px;--shadow:0 1px 3px rgba(0,0,0,.08);
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
line-height:1.65;color:var(--text);background:var(--bg)}
.layout{display:flex;min-height:100vh}
.sidebar{width:280px;background:var(--sidebar-bg);border-right:1px solid var(--border);
position:fixed;top:0;left:0;bottom:0;overflow-y:auto;padding:24px 16px;
display:flex;flex-direction:column;z-index:10}
.content{margin-left:280px;flex:1;padding:48px 64px;max-width:960px}
.sidebar-header{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.sidebar-title{font-size:16px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.sidebar-title svg{flex-shrink:0}
.sidebar-meta{font-size:11px;color:var(--text-muted);margin-top:6px}
.nav-section{margin-bottom:2px}
.nav-item{display:block;padding:7px 12px;border-radius:var(--radius);cursor:pointer;
font-size:13px;color:var(--text);text-decoration:none;transition:all .15s;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-item:hover{background:var(--hover)}
.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}
.nav-item.overview{font-weight:600;margin-bottom:4px}
.nav-children{padding-left:14px;border-left:1px solid var(--border);margin-left:12px}
.nav-group-label{font-size:11px;font-weight:600;color:var(--text-muted);
text-transform:uppercase;letter-spacing:.5px;padding:12px 12px 4px;user-select:none}
.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);
font-size:11px;color:var(--text-muted);text-align:center}
.content h1{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1.3}
.content h2{font-size:22px;font-weight:600;margin:32px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.content h3{font-size:17px;font-weight:600;margin:24px 0 8px}
.content h4{font-size:15px;font-weight:600;margin:20px 0 6px}
.content p{margin:12px 0}
.content ul,.content ol{margin:12px 0 12px 24px}
.content li{margin:4px 0}
.content a{color:var(--primary);text-decoration:none}
.content a:hover{text-decoration:underline}
.content blockquote{border-left:3px solid var(--primary);padding:8px 16px;margin:16px 0;
background:var(--primary-soft);border-radius:0 var(--radius) var(--radius) 0;
color:var(--text-muted);font-size:14px}
.content code{font-family:'SF Mono',Consolas,'Courier New',monospace;font-size:13px;
background:var(--code-bg);padding:2px 6px;border-radius:4px}
.content pre{background:#1e293b;color:#e2e8f0;border-radius:var(--radius);padding:16px;
overflow-x:auto;margin:16px 0}
.content pre code{background:none;padding:0;font-size:13px;line-height:1.6;color:inherit}
.content table{border-collapse:collapse;width:100%;margin:16px 0}
.content th,.content td{border:1px solid var(--border);padding:8px 12px;text-align:left;font-size:14px}
.content th{background:var(--sidebar-bg);font-weight:600}
.content img{max-width:100%;border-radius:var(--radius)}
.content hr{border:none;border-top:1px solid var(--border);margin:32px 0}
.content .mermaid{margin:20px 0;text-align:center}
.menu-toggle{display:none;position:fixed;top:12px;left:12px;z-index:20;
background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
padding:8px 12px;cursor:pointer;font-size:18px;box-shadow:var(--shadow)}
@media(max-width:768px){
.sidebar{transform:translateX(-100%);transition:transform .2s}
.sidebar.open{transform:translateX(0);box-shadow:2px 0 12px rgba(0,0,0,.1)}
.content{margin-left:0;padding:24px 20px;padding-top:56px}
.menu-toggle{display:block}
}
.empty-state{text-align:center;padding:80px 20px;color:var(--text-muted)}
.empty-state h2{font-size:20px;margin-bottom:8px;border:none}
</style>
</head>
<body>
<button class="menu-toggle" id="menu-toggle" aria-label="Toggle menu">&#9776;</button>
<div class="layout">
<nav class="sidebar" id="sidebar">
<div class="sidebar-header">
<div class="sidebar-title">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z"/><path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z"/></svg>
mixcore-v3
</div>
<div class="sidebar-meta" id="meta-info"></div>
</div>
<div id="nav-tree"></div>
<div class="sidebar-footer">Generated by GitNexus</div>
</nav>
<main class="content" id="content">
<div class="empty-state"><h2>Loading…</h2></div>
</main>
</div>
<script>
var PAGES = {"docs":"# docs\n\n# docs Module\n\n## Overview\n\nThe `docs` module serves as the central repository for technical documentation, implementation plans, and design specifications within the mixcore-v3 project. Unlike traditional code modules, this directory contains markdown files that guide development workflows, document architectural decisions, and provide executable plans for agentic workers.\n\n## Purpose\n\nThe module exists to:\n- **Document architectural decisions** - Capture design rationale and technical specifications\n- **Provide executable implementation plans** - Offer step-by-step guides for agentic workers to execute complex refactors and feature implementations\n- **Maintain project consistency** - Ensure all development follows established patterns and conventions\n- **Enable subagent-driven development** - Support the project's use of AI-assisted development through structured, actionable plans\n\n## Structure\n\n```\ndocs/\n├── superpowers/\n│ ├── plans/ # Implementation plans with executable steps\n│ └── specs/ # Technical specifications and design documents\n└── wiki/ # General project documentation\n```\n\n### Key File Types\n\n1. **Implementation Plans** (`plans/`): Step-by-step guides using checkbox syntax (`- [ ]`) that agentic workers can execute directly. These plans include:\n - File-by-file change specifications\n - Build and test commands\n - Commit messages\n - Verification steps\n\n2. **Design Specifications** (`specs/`): Technical documents detailing:\n - Architecture decisions\n - API designs\n - Integration patterns\n - Technology choices\n\n## Example Plan Structure\n\nEach implementation plan follows a consistent template:\n\n```markdown\n# [Feature Name] — Implementation Plan\n\n> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan.\n\n**Goal:** Clear statement of what the plan achieves\n**Architecture:** High-level technical approach\n**Tech Stack:** Technologies and versions used\n**Spec:** Reference to detailed specification document\n\n---\n\n## File Map\n\n| File | Action |\n|---|---|\n| `path/to/file.cs` | **Create/Modify/Delete** — Description |\n\n---\n\n## Task 1: [Task Name]\n\n**Files:**\n- Action: `path/to/file.cs`\n\n- [ ] Step 1: Description\n```csharp\n// Exact code to implement\n```\n\n- [ ] Step 2: Build verification\n```bash\ndotnet build path/to/project\n```\n\n- [ ] Step 3: Commit\n```bash\ngit add path/to/file.cs\ngit commit -m \"feat(module): description\"\n```\n\n---\n```\n\n## Key Plans in the Module\n\n### 1. mix.account Refactor (2026-03-19)\n**Goal:** Refactor authentication and account management to use `MixCacheService` exclusively for refresh token management, eliminating the `RefreshTokens` database table.\n\n**Key Changes:**\n- Replace `RefreshTokens` EF Core entity with `RefreshTokenModel` cache DTO\n- Update `MixIdentityService` to use cache instead of database\n- Remove database migrations for refresh_tokens table\n- Refactor `MixAccountController` to inherit from `TenantControllerBase`\n- Fix REST endpoint naming conventions and security\n\n**Architecture Impact:**\n```\nBefore: User → RefreshToken (DB Table) → Access Token\nAfter: User → RefreshTokenModel (Cache) → Access Token\n```\n\n### 2. Linkerd Service Mesh Integration (2026-03-20)\n**Goal:** Add Linkerd sidecar compatibility and JWT service-to-service authentication.\n\n**Components:**\n- `LinkerdForwardedHeadersStartupFilter`: Handles X-Forwarded headers from Linkerd proxy\n- `LinkerdShutdownService`: Adds graceful shutdown delay for proxy drain\n- `ServiceAccountTokenCache`: Thread-safe JWT token caching with expiry awareness\n- `ServiceAccountTokenHandler`: Attaches service tokens to outbound HTTP calls\n- `ServiceAccountTokenHandlerFilter`: Skips token attachment for internal clients\n\n**Authentication Flow:**\n```mermaid\ngraph LR\n A[Service Client] --> B[ServiceAccountTokenHandler]\n B --> C[Attach Bearer Token]\n C --> D[Target Service]\n D --> E[Authorize Policy=\"ServiceCall\"]\n E --> F[JWT Validation]\n F --> G[Access Granted]\n```\n\n### 3. mix.ai Module Implementation (2026-03-23)\n**Goal:** Implement multi-provider LLM chat, RAG pipeline, and multi-agent system.\n\n**Core Architecture:**\n- **LLM Layer**: `LlmServiceFactory` with provider abstraction (OpenAI, Gemini, etc.)\n- **RAG Pipeline**: `IVectorDbService` with Qdrant/PostgreSQL implementations\n- **Agent System**: Five specialized agents (Routing, Chat, Planning, Task, Database)\n- **SignalR Integration**: Real-time streaming via `LLMHub` and `AIContentEditorHub`\n\n**Data Flow:**\n```\nUser Input → Routing Agent → Specialist Agent → LLM → RAG Context → Response\n```\n\n## Integration with Development Workflow\n\n### Agentic Worker Execution\n\nThe plans are designed for execution by AI agents using the project's `superpowers` system:\n\n1. **Plan Selection**: Agent identifies relevant plan based on task\n2. **Step Execution**: Agent executes each checkbox step sequentially\n3. **Verification**: Agent runs build and test commands to validate changes\n4. **Commit**: Agent creates atomic commits with conventional commit messages\n\n### Quality Gates\n\nEach plan includes verification steps:\n- Build verification (`dotnet build src/mixcore.sln`)\n- Test execution (`dotnet test src/mixcore.sln`)\n- Environment-specific checks (development vs production)\n- Documentation updates\n\n## Best Practices for Plan Authors\n\nWhen creating new plans:\n\n1. **Atomic Changes**: Each task should be independently verifiable\n2. **Complete Specifications**: Include exact code snippets, not descriptions\n3. **Build Verification**: Include build commands after significant changes\n4. **Test Coverage**: Reference existing tests or specify new test requirements\n5. **Rollback Considerations**: Note any irreversible changes\n6. **Dependency Ordering**: Sequence tasks to avoid broken intermediate states\n\n## Module Dependencies\n\nThe docs module has no runtime dependencies but influences:\n- All other modules through implementation plans\n- Build system through migration and refactoring instructions\n- Deployment processes through configuration changes\n\n## Maintenance\n\n- **Versioning**: Plans are dated (YYYY-MM-DD) for chronological tracking\n- **Obsolete Plans**: Mark deprecated plans with `[DEPRECATED]` prefix\n- **Spec Updates**: When implementations deviate from plans, update both plan and spec\n- **Cross-References**: Link related plans and specs for context\n\n## Contribution Guidelines\n\n1. **New Plans**: Create in `docs/superpowers/plans/` with date prefix\n2. **Specifications**: Create corresponding spec in `docs/superpowers/specs/`\n3. **Updates**: Modify existing plans only for corrections; create new versions for significant changes\n4. **Formatting**: Use consistent markdown structure and checkbox syntax\n5. **Testing**: Verify all commands work in the current development environment\n\nThe `docs` module embodies the project's commitment to documented, reproducible development processes, enabling both human developers and AI agents to contribute effectively to the codebase.","overview":"# mixcore-v3 — Wiki\n\n# Mixcore v3\n\nWelcome to Mixcore v3, a modern, headless Content Management System (CMS) and API platform built on .NET 10 and ASP.NET Core 10. This platform is designed as a modular monolith, giving you the flexibility to deploy it as a single application or as a suite of independent microservices. It provides robust multi-tenancy, real-time capabilities, and seamless integration with configurable AI providers.\n\n## Core Architecture\n\nMixcore v3 is structured around a clear separation of concerns, enabling maintainability and scalability. The system is orchestrated from the root, which coordinates the main web application, core platform libraries, and specialized feature modules.\n\n```mermaid\ngraph TB\n Host[mixcore.host<br/>.NET Aspire Host] --> App[Main Web App]\n App --> Platform[Core Platform]\n Platform --> Modules[Feature Modules]\n Modules --> Services[External Services<br/>DB, AI, Cache]\n```\n\n**Key Architectural Layers:**\n* **Orchestration & Hosting (`mixcore.host`)**: The entry point powered by .NET Aspire, managing service dependencies, configuration, and observability for the entire system.\n* **Main Application (`apps/mixcore`)**: The primary ASP.NET Core web application that serves as the runtime host for the platform and its modules.\n* **Core Platform (`src/platform`)**: The foundational library containing shared infrastructure: data access with Entity Framework Core, caching, file management, and essential service abstractions.\n* **Feature Modules (`src/modules`)**: Independently developed units of business logic (e.g., `mix.auth`, `mix.account`) that plug into the core platform to deliver specific CMS capabilities.\n* **External Integrations**: The platform connects to various databases (SQL Server, PostgreSQL, etc.), AI providers (OpenAI, Gemini), and messaging systems (MQTT).\n\n## Key End-to-End Flows\n\nUnderstanding a few core workflows will help you navigate the codebase:\n\n1. **Content Management & Caching**: A content deletion request triggers a chain from the API controller, through the repository layer for data access, and finally to the caching service (`MixCacheService`). The cache invalidation process demonstrates the integration between the platform's data layer and its file-based or Redis caching strategies.\n2. **Data Query Execution**: Query handlers fetch lists of data. This flow showcases the `ViewQueryRepository` parsing entities, retrieving specific views, and leveraging the caching layer to optimize performance, illustrating the platform's CQRS-inspired patterns.\n3. **Multi-Tenant Initialization**: When a new tenant is initialized, the system configures its settings. This involves the `AppSettingsService` saving configuration files, which highlights the platform's use of the shared `MixFileHelper` service for filesystem operations across different modules.\n4. **User Authentication**: A user login request is handled by the authentication module (`mix.auth`), which generates access tokens. This flow shows how the authentication process integrates with the platform's caching mechanism to store session data.\n\n## Getting Started\n\n### Prerequisites\n* .NET 10 SDK\n* A supported database (e.g., SQL Server, PostgreSQL, SQLite)\n* Docker (for containerized deployment)\n\n### Setup & Run\n1. **Clone the repository** and navigate to the `src/` directory.\n2. **Configure your database** connection string in the appropriate `appsettings.json` file.\n3. **Run the Aspire host** to orchestrate all services:\n ```bash\n cd src/mixcore.host\n dotnet run\n ```\n4. The main web application and dependent services will start. The Aspire dashboard provides observability into the running system.\n\n## Navigating the Codebase\n\nStart your exploration with these key areas:\n* **`src/platform/`**: The heart of the system. Understand the `Repository` pattern, `Services` like `MixCacheService`, and the shared `Helpers`.\n* **`src/modules/`**: Browse feature-specific modules such as `mix.auth` for identity or `mix.account` for user management to see how business logic is encapsulated.\n* **`apps/mixcore/`**: Examine the main web app's `Controllers` and startup configuration to see how modules are integrated and APIs are exposed.\n* **`wiki/`**: Contains detailed documentation for the Blazor-based admin panel and other components.\n\nFor a deeper dive into specific components, refer to their dedicated module documentation pages (e.g., [Core Platform](platform.md), [Authentication Module](mix-auth.md)).\n\n## Technology Stack\n\nMixcore v3 leverages a modern, production-ready stack:\n* **Backend:** .NET 10 / ASP.NET Core 10, Entity Framework Core 10\n* **API & Real-time:** RESTful APIs, SignalR for real-time features\n* **Auth:** OAuth 2.0, OpenID Connect, JWT\n* **Data:** Supports SQL Server, PostgreSQL, MySQL, SQLite\n* **Deployment:** Docker, .NET Aspire for orchestration\n* **AI:** Configurable layer for OpenAI, DeepSeek, Gemini, and others\n\nThis architecture provides a powerful, flexible foundation for building and managing content-driven applications.","root":"# Root\n\n# Mixcore v3 - Root Module Documentation\n\n## Overview\n\nThe **Root** module represents the foundational entry point and orchestration layer for the entire Mixcore v3 headless CMS platform. This isn't a traditional code module but rather the project root that coordinates all platform libraries, feature modules, and applications into a cohesive system. It provides the build configuration, deployment tooling, and architectural documentation that enables the modular monolith to function as both a single deployable unit and as independently deployable microservices.\n\n## Project Structure\n\n```\nmixcore-v3/\n├── src/ # Source code root\n│ ├── mixcore.sln # Main solution file\n│ ├── apps/ # Runnable applications\n│ ├── platform/ # Core infrastructure libraries\n│ ├── modules/ # Feature modules\n│ └── tests/ # Test projects\n├── wiki/ # Comprehensive documentation\n├── docker-compose.yml # Multi-service deployment\n├── .claude/ # AI development tooling\n└── *.md files # Project-wide guidelines\n```\n\n## Key Responsibilities\n\n### 1. Build Orchestration\n- **Solution Management**: The `src/mixcore.sln` file coordinates 50+ projects across four layers (platform, modules, apps, tests)\n- **Build Configuration**: Standardizes .NET 10 target framework, nullable reference types, and implicit usings across all projects\n- **Dependency Management**: Ensures correct project references between platform libraries and feature modules\n\n### 2. Deployment Configuration\n- **Docker Compose**: Defines service profiles for different deployment scenarios:\n - Standalone (SQLite default)\n - PostgreSQL + pgAdmin\n - MySQL\n - SQL Server\n - AI services (Qdrant + LightRAG)\n- **Service Discovery**: Configures .NET Aspire orchestration for local development\n- **Volume Management**: Persistent storage for uploads, configurations, and database files\n\n### 3. Development Tooling Integration\n- **GitNexus**: Code intelligence and impact analysis with 9503 symbols, 26705 relationships, and 300 execution flows indexed\n- **OpenSpace MCP**: Local skill directories for AI-assisted development\n- **Scalar API Documentation**: Interactive OpenAPI documentation with authentication configuration\n- **Test Parallelization Control**: Enforces sequential test execution to prevent configuration file corruption\n\n### 4. Architectural Governance\n- **Code Style Enforcement**: Through `AGENTS.md` and `CLAUDE.md` guidelines\n- **Module Loading Protocol**: Defines the `IStartupService` interface for self-registering modules\n- **DI Registration Order**: Mandates `AddMixCoreServices()` → `UseMixCoreApp()` pattern\n- **Multi-tenancy Foundation**: Establishes tenant resolution patterns and isolation boundaries\n\n## Critical Configuration Files\n\n### `AGENTS.md`\nThe authoritative development guide covering:\n- Build and test commands with database provider filtering\n- EF Core 10 migration procedures\n- Controller and service implementation patterns\n- JSON serialization standards (Newtonsoft.Json)\n- Security best practices and error handling\n- Testing patterns with sequential execution requirement\n\n### `CLAUDE.md`\nAI-assisted development reference detailing:\n- Project architecture and layer responsibilities\n- Module loading mechanism via `MixAssemblyFinder`\n- Configuration system layering\n- Installation flow state machine\n- Service-account authentication for inter-service communication\n\n### `docker-compose.yml`\nMulti-profile deployment configuration:\n```yaml\n# Minimal setup (default)\ndocker compose up\n\n# PostgreSQL with pgAdmin\ndocker compose --profile postgres up\n\n# Full AI stack\ndocker compose --profile postgres --profile ai up\n```\n\n### `scalar.config.json`\nAPI documentation configuration with:\n- Multiple server environments (local, Docker, HTTPS/HTTP)\n- Bearer token authentication setup\n- Tag-based organization of API endpoints\n- Theme customization for developer portal\n\n## Build and Development Workflow\n\n### Standard Development Cycle\n```bash\n# 1. Build the solution\ndotnet build src/mixcore.sln\n\n# 2. Run tests (sequentially)\ndotnet test src/mixcore.sln\n\n# 3. Start development environment\ndocker compose up --build\n\n# 4. Access services\n# Main app: http://localhost:8080\n# API docs: http://localhost:8080/scalar\n# pgAdmin: http://localhost:5050 (with postgres profile)\n```\n\n### Database Migration Management\n```bash\n# Run from repository root (not src/)\ndotnet ef --startup-project src/apps/mixcore \\\n --project src/platform/mix.database \\\n migrations add <Name> \\\n --context <ContextName> \\\n --output-dir Migrations/<Path>\n```\n\n### Impact Analysis Protocol\nBefore any code modification:\n```bash\n# Check blast radius\nnpx gitnexus analyze\ngitnexus_impact({target: \"SymbolName\", direction: \"upstream\"})\n\n# Verify changes before commit\ngitnexus_detect_changes({scope: \"staged\"})\n```\n\n## Module Integration Points\n\n### Platform Layer Dependencies\nThe root module ensures all platform libraries are properly referenced:\n- **mix.shared**: Foundation DTOs and configuration models\n- **mix.database**: EF Core contexts with multi-provider support\n- **mix.lib**: Controller base classes and CRUD services\n- **mixcore.aspire.service**: .NET Aspire service defaults\n\n### Module Discovery Mechanism\nModules implement `IStartupService` for self-registration:\n```csharp\npublic class Startup : IStartupService\n{\n public Task ConfigureServices(IHostApplicationBuilder builder) { ... }\n public Task Configure(IApplicationBuilder app, IConfiguration config, bool isDev) { ... }\n public Task ConfigureEndpoints(IEndpointRouteBuilder endpoints, IConfiguration config, bool isDev) { ... }\n}\n```\n\nThe root's build configuration ensures `MixAssemblyFinder.GetAssembliesByPrefix(\"mix\")` can discover and load all modules at runtime.\n\n### Application Entry Points\n- **Main Web App**: `src/apps/mixcore` - Primary user-facing application\n- **Aspire Host**: `src/mixcore.host` - Service orchestration for development\n- **Installation UI**: `modules/installation/mix.installation.ui` - First-run setup wizard\n\n## Security and Compliance\n\n### Configuration Security\n- **Layered Configuration**: Base → Environment → Tenant → Runtime overrides\n- **Optional Encryption**: AES-256 encryption for tenant-specific configs\n- **Service Account Auth**: JWT-based inter-service communication\n- **CORS Management**: Automatic origin extraction from endpoint configuration\n\n### Testing Compliance\n- **Sequential Execution**: All tests run with `[assembly: CollectionBehavior(DisableTestParallelization = true)]`\n- **Database Provider Coverage**: Tests must run against all supported databases (SQL Server, MySQL, SQLite, PostgreSQL)\n- **Controller Test Patterns**: Unit tests without WebApplicationFactory to avoid unnecessary complexity\n\n## Deployment Architecture\n\n```mermaid\ngraph TB\n Root[Root Module<br/>mixcore-v3/]\n \n Root --> Build[Build System<br/>mixcore.sln]\n Root --> Deploy[Deployment<br/>docker-compose.yml]\n Root --> Docs[Documentation<br/>wiki/ + *.md]\n Root --> Tooling[Development Tooling<br/>.claude/ + GitNexus]\n \n Build --> Platform[Platform Libraries<br/>mix.shared, mix.database, etc.]\n Build --> Modules[Feature Modules<br/>mix.auth, mix.content, etc.]\n Build --> Apps[Applications<br/>mixcore, mixcore.host]\n Build --> Tests[Test Projects<br/>50+ test suites]\n \n Deploy --> Standalone[Standalone Profile<br/>SQLite default]\n Deploy --> Postgres[PostgreSQL Profile<br/>+ pgAdmin]\n Deploy --> AI[Ai Services Profile<br/>Qdrant + LightRAG]\n \n Tooling --> Analysis[Impact Analysis<br/>9503 symbols indexed]\n Tooling --> Skills[AI Skills<br/>OpenSpace integration]\n Tooling --> APIDocs[API Documentation<br/>Scalar configuration]\n```\n\n## Common Development Scenarios\n\n### Adding a New Feature Module\n1. Create module in `src/modules/<category>/<module-name>/`\n2. Implement `IStartupService` for self-registration\n3. Follow controller/service patterns from `mix.lib`\n4. Add comprehensive tests in `src/tests/`\n5. Update relevant `wiki/` documentation\n6. Run impact analysis before committing\n\n### Modifying Core Infrastructure\n1. Run `gitnexus_impact` on target symbols\n2. Update affected platform libraries\n3. Test against all database providers\n4. Verify module compatibility\n5. Update `AGENTS.md` or `CLAUDE.md` if patterns change\n\n### Deploying with Custom Configuration\n1. Copy `.env.example` to `.env`\n2. Set `DATABASE_PROVIDER` and connection strings\n3. Choose Docker Compose profiles\n4. Configure service account authentication\n5. Deploy with appropriate volume mounts\n\n## Troubleshooting\n\n### Common Issues and Solutions\n\n**Build Failures**\n- Ensure all projects target `net10.0`\n- Verify `Nullable` and `ImplicitUsings` are enabled\n- Check project reference hierarchy\n\n**Test Failures**\n- Confirm tests run sequentially (parallel execution corrupts config files)\n- Verify database provider traits are correctly applied\n- Check for pending EF Core migrations in test setup\n\n**Docker Deployment Issues**\n- Ensure `.env` file exists with required variables\n- Check port conflicts between services\n- Verify volume permissions for persistent storage\n\n**Module Loading Problems**\n- Confirm module implements `IStartupService`\n- Check assembly naming follows `mix.*` pattern\n- Verify DI registration order in `Program.cs`\n\n## Best Practices for Contributors\n\n### Code Quality\n- Use C# 12 primary constructors for new services/controllers\n- Mark all controller actions and service methods as `virtual`\n- Follow `_camelCase` for private fields\n- Use `Newtonsoft.Json` consistently (not `System.Text.Json`)\n\n### Architectural Compliance\n- Never expand `AddMixCoreServices()` manually\n- Always call `AddMixCoreServices()` before `UseMixCoreApp()`\n- Use `TenantControllerBase` for all API controllers\n- Implement proper error handling with `MixException`\n\n### Testing Discipline\n- Never remove the sequential test execution attribute\n- Fake settings services by subclassing, not mocking file I/O\n- Test against all supported database providers\n- Use `Database.EnsureCreated()` in tests, not `Migrate()`\n\n### Documentation Maintenance\n- Update relevant `wiki/` pages after code changes\n- Keep `AGENTS.md` and `CLAUDE.md` synchronized with codebase\n- Document new configuration options\n- Maintain API documentation via OpenAPI/Scalar\n\n## Future Evolution\n\nThe root module is designed to support the platform's evolution from modular monolith to microservices. Key evolution paths include:\n\n1. **Service Extraction**: Individual modules can be extracted to standalone microservices\n2. **Database Specialization**: Support for additional database providers and specialized data stores\n3. **AI Integration Expansion**: Additional AI service profiles and vector database options\n4. **Developer Experience**: Enhanced tooling integration and local development workflows\n5. **Production Readiness**: Advanced deployment profiles for Kubernetes, cloud providers, and high-availability setups\n\n## Related Documentation\n\n- [Architecture Overview](../wiki/architecture.md) - Detailed component breakdown\n- [Getting Started](../wiki/getting-started.md) - First-time setup guide\n- [Module Development](../wiki/module-development.md) - Creating new feature modules\n- [Configuration Guide](../wiki/configuration.md) - Comprehensive settings management\n- [API Reference](../wiki/api-reference.md) - REST API documentation\n- [AI Integration](../wiki/ai-integration.md) - LLM and vector search setup","src-apps":"# src — apps\n\n# Mixcore Application Module\n\n## Overview\n\nThe Mixcore application module is the primary web application for the Mixcore CMS platform. It serves as both a traditional MVC web application and a hybrid gateway that can proxy requests to microservices. The application handles user authentication, content rendering, administration, and system initialization through a unified ASP.NET Core architecture.\n\n## Architecture\n\n```mermaid\ngraph TB\n subgraph \"Mixcore Application\"\n A[Program.cs] --> B[Middleware Pipeline]\n B --> C[Controllers]\n B --> D[Gateway Routing]\n B --> E[Blazor Components]\n \n C --> F[HomeController]\n C --> G[AccountController]\n C --> H[AdminController]\n C --> I[InitController]\n C --> J[InstallationSetupController]\n \n F --> K[PageContentService]\n K --> L[PageContentHandlers]\n L --> M[GetPageBySeoNameQuery]\n \n D --> N[RouteChecker]\n D --> O[Ocelot Gateway]\n end\n \n subgraph \"External Services\"\n P[Database Context]\n Q[Identity Service]\n R[Tenant Service]\n S[Cache Service]\n end\n \n K --> P\n G --> Q\n F --> R\n L --> S\n```\n\n## Key Components\n\n### 1. Controllers\n\n#### HomeController (`/`, `/{seoName}`)\nThe primary content rendering controller that handles:\n- **Page loading by SEO name**: Resolves URLs to page content\n- **URL alias resolution**: Supports redirects via `MixUrlAlias` entities\n- **Tenant-aware content**: Multi-tenant content isolation\n- **SEO metadata**: Dynamic title, description, and OpenGraph tags\n\n**Key methods:**\n- `Index()`: Main entry point for site navigation\n- `LoadPage()`: Retrieves page content by SEO name\n- `LoadAlias()`: Handles URL alias resolution\n- `SetPageViewData()`: Configures SEO and layout metadata\n\n#### AccountController (`/Account`)\nHandles user authentication with cookie-based JWT storage:\n- **Login/Logout**: Traditional form-based authentication\n- **Cookie management**: Secure HTTP-only cookies with SameSite protection\n- **Return URL support**: Post-login redirection\n- **Anti-forgery protection**: CSRF protection on POST endpoints\n\n#### AdminController (`/admin`)\nAdministration interface with Blazor integration:\n- **Dashboard statistics**: Page, post, module, and user counts\n- **Blazor component hosting**: Server-side Blazor admin interface\n- **Tenant context**: Multi-tenant administration\n- **Route pattern matching**: Flexible admin URL structure (`/admin/{section}/{subsection}/{id}`)\n\n#### InitController (`/init`)\nSystem initialization workflow controller:\n- **Pre-initialization guard**: Redirects to initialization when CMS not configured\n- **Blazor wizard hosting**: Embedded installation interface\n- **Status endpoint**: Health check for initialization state\n\n#### InstallationSetupController (`/api/v3/rest/mix-installation/setup`)\nAPI proxy for installation wizard that matches the standalone installation service API:\n- **Step-by-step initialization**: Database, account, theme selection\n- **Status management**: Tracks `InitStatus` through installation steps\n- **Error recovery**: Database connection reset on failure\n\n### 2. Domain Layer\n\n#### PageContentService\nService layer for page content operations:\n- **SEO-based retrieval**: `GetBySeoNameAsync()` method\n- **Mediator pattern**: Uses CQRS with `GetPageBySeoNameQuery`\n- **Template resolution**: Automatically resolves layout and template file paths\n\n#### PageContentHandlers\nCQRS handler for page queries:\n- **Template path resolution**: Dynamically builds layout and template file paths\n- **Repository pattern**: Uses `PageContentViewModel.GetRepository()`\n- **Error handling**: Wrapped exceptions with `MixException`\n\n#### PageContentViewModel\nData transfer object with:\n- **SEO properties**: `SeoName`, `SeoTitle`, `SeoDescription`\n- **Template references**: `LayoutId`, `TemplateId`, `LayoutFilePath`, `TemplateFilePath`\n- **Content metadata**: `PublishedDateTime`, `ClassName`, `Type`\n- **Navigation properties**: `ParentId`, `MixCultureId`\n\n### 3. Gateway System\n\n#### RouteChecker\nInternal utility that determines if a request should be proxied:\n- **Ocelot configuration parsing**: Reads `Routes` from configuration\n- **Path prefix matching**: Supports both static and parameterized routes\n- **HTTP method validation**: Optional method restriction\n- **Performance optimized**: Early exit on match\n\n#### Ocelot Integration\nConditional gateway activation:\n- **Dormant by default**: Empty `Routes` array means MVC handles all traffic\n- **Dynamic activation**: Add routes to `ocelot.json` to enable proxying\n- **Endpoint clearing**: Prevents ASP.NET Core endpoint execution conflicts\n- **Branch pipeline**: Isolated middleware branch for proxied requests\n\n### 4. Program Configuration\n\n#### Startup Pipeline (`Program.cs`)\nThe application entry point configures:\n\n**Service Registration:**\n- ASP.NET Core MVC with Newtonsoft JSON\n- Blazor Server for embedded components\n- Ocelot gateway (dormant by default)\n- Platform services (database, auth, cache, queue)\n- MediatR for CQRS pattern\n- OpenAPI for development\n\n**Middleware Pipeline:**\n1. **Exception handling**: Development vs production error pages\n2. **Status code pages**: 401 redirect to login for browser requests\n3. **Cookie-to-header JWT**: Extracts tokens from cookies for API authentication\n4. **Forwarded headers**: Reverse proxy support (X-Forwarded-*)\n5. **Initialization redirect**: Forces `/init` when CMS not configured\n6. **Gateway routing**: Conditional Ocelot proxy activation\n7. **Static files**: Templates and mixcontent directories\n8. **Blazor Hub**: Server-side Blazor signalR\n9. **Controller routing**: Default MVC routing with static assets\n\n## Configuration Files\n\n### Application Settings\n- `appsettings.json`: Base configuration\n- `appsettings.Development.json`: Development-specific settings\n- `ocelot.json`: Gateway route definitions (empty by default)\n\n### Default Content (`wwwroot/default-mixcontent/`)\nSeed data and configuration templates:\n- `setting-files/`: Default configuration JSON files\n- `templates/`: CSHTML template directory\n- `instructions/`: Vector-optimized documentation for AI agents\n\n### Docker Configuration\n- `Dockerfile`: Local development build\n- `DockerfileLinux`: Production build for platforms like Dokploy\n- `entrypoint.sh`: Container entrypoint with content seeding\n\n## Key Design Patterns\n\n### 1. Hybrid Architecture\nMixcore operates as both:\n- **Monolithic MVC app**: Traditional request-response for web pages\n- **API Gateway**: Proxies specific routes to microservices via Ocelot\n- **Blazor Host**: Embeds Blazor components in MVC views\n\n### 2. Multi-Tenancy\n- **Tenant isolation**: All database queries filter by `TenantId`\n- **Default tenant resolution**: `ITenantService.GetDefaultTenantAsync()`\n- **View data propagation**: Tenant context passed to views via `ViewData`\n\n### 3. Content Resolution Chain\n```\nRequest → HomeController.Index()\n ├→ LoadPage() [by SEO name]\n ├→ LoadAlias() [URL alias resolution]\n │ ├→ LoadAliasPage() [page aliases]\n │ └→ LoadAliasApplication() [app aliases]\n └→ Redirect to /admin [no content found]\n```\n\n### 4. Authentication Flow\n```\nBrowser Request → AccountController.Login()\n ├→ IMixIdentityService.LoginAsync()\n ├→ JWT token generation\n ├→ HTTP-only cookie storage\n └→ Return URL redirect\n \nSubsequent Requests → Cookie extraction middleware\n ├→ JWT injected as Authorization header\n └→ [Authorize] attribute validation\n```\n\n## View Architecture\n\n### Layout System\n- `_Layout.cshtml`: Default site layout\n- `_LoginLayout.cshtml`: Authentication-specific layout\n- `_BlazorAdminLayout.cshtml`: Admin interface with Blazor\n- `_AiChatLayout.cshtml`: AI chat interface\n- `_InitLayout.cshtml`: Installation wizard\n\n### Template Rendering\nPages use a two-tier template system:\n1. **Layout**: Overall page structure (`LayoutFilePath`)\n2. **Template**: Content-specific rendering (`TemplateFilePath`)\n\nTemplates are loaded via partial views:\n```html\n<partial name=\"@Model.TemplateFilePath\" model=\"@Model\" />\n```\n\n### Blazor Component Integration\nBlazor components are embedded in MVC views:\n```html\n<component type=\"typeof(Mix.Admin.Ui.Components.AdminDashboard)\" \n render-mode=\"Server\"\n param-InitialSection='@ViewData[\"Section\"]' />\n```\n\n## Initialization Workflow\n\n### Installation Steps\n1. **Database initialization**: `InitTenant()` - Creates database schema\n2. **Admin account creation**: `InitAccount()` - Sets up first user\n3. **Theme selection**: `SelectTheme()` - Chooses visual theme\n4. **Theme import**: `ImportTheme()` - Applies theme data\n5. **Completion**: `Complete()` - Marks installation as done\n\n### Status Tracking\nThe `InitStatus` configuration value tracks progress:\n- `Blank`: No initialization performed\n- `InitAccount`: Ready for admin account creation\n- `SelectTheme`: Ready for theme selection\n- `InitTheme`: Ready for theme import\n- `Done`: Installation complete\n\n## Development Notes\n\n### Adding Gateway Routes\nTo proxy requests to a microservice:\n1. Add route definition to `ocelot.json`:\n```json\n{\n \"UpstreamPathTemplate\": \"/api/v3/rest/mix-account/{everything}\",\n \"DownstreamHostAndPorts\": [{ \"Host\": \"localhost\", \"Port\": 5010 }]\n}\n```\n2. Restart application\n3. Requests matching the path template will be proxied\n\n### Creating New Content Types\n1. Create view model inheriting from `TenantDataViewModelBase`\n2. Implement service layer with `CrudService` base\n3. Add CQRS handlers for complex queries\n4. Create controller with appropriate routing\n5. Add views with proper layout references\n\n### CSS Architecture\n- `site.css`: Base styles with BlazorBlueprint theme\n- `admin.css`: Admin-specific styles with shadcn design tokens\n- Component-specific CSS loaded via Blazor component libraries\n\n## Testing\n\nThe module includes internal visibility for testing:\n```csharp\n[assembly: InternalsVisibleTo(\"mix.gateway.tests\")]\n```\n\nKey testable components:\n- `RouteChecker`: Gateway routing logic\n- Controller action methods\n- Service layer dependencies\n\n## Deployment\n\n### Containerization\n- **Alpine base**: Minimal image size (~100MB)\n- **ICU libraries**: Globalization support\n- **Content seeding**: Automatic `mixcontent` population\n- **User isolation**: Non-root user execution\n\n### Environment Variables\n- `ASPNETCORE_ENVIRONMENT`: Development/Production\n- `DOTNET_SYSTEM_GLOBALIZATION_INVARIANT`: false\n- Port configuration via `EXPOSE 8080`\n\n### Reverse Proxy Configuration\nThe application expects:\n- **TLS termination**: At reverse proxy (nginx, Traefik, etc.)\n- **Forwarded headers**: `X-Forwarded-For`, `X-Forwarded-Proto`\n- **Health checks**: Via `/health` endpoints\n\n## Related Modules\n\nMixcore depends on and integrates with:\n- `mix.account`: User management and authentication\n- `mix.admin.ui`: Blazor admin interface components\n- `mix.installation.lib`: Installation service logic\n- `mix.content`: Content management services\n- `mix.database`: Database abstraction layer\n- `mix.lib`: Core platform utilities\n\nThis modular architecture allows the main application to focus on request routing, view rendering, and user interaction while delegating specialized functionality to dedicated modules.","src-mixcore-host":"# src — mixcore.host\n\n# mixcore.host — Aspire Application Host\n\n## Overview\n\nThe `mixcore.host` module is the **orchestration entry point** for the Mixcore application suite. Built on .NET Aspire, it defines and configures all services, containers, and dependencies that make up the Mixcore platform in a development or deployment environment.\n\nThis host project doesn't contain business logic—instead, it wires together:\n- Core web applications (`mixcore`)\n- Optional backend APIs (`mix-account`, `mix-ai`, `mix-installation-api`)\n- Supporting infrastructure (PostgreSQL, Qdrant, LightRAG)\n- Monitoring stack (Prometheus, Grafana)\n\n## Project Structure\n\n```\nsrc/mixcore.host/\n├── AppHost.cs # Main orchestration logic\n├── appsettings.json # Default configuration\n├── appsettings.Development.json # Development overrides\n├── Properties/launchSettings.json # Launch profiles\n└── mixcore.host.csproj # Project references and dependencies\n```\n\n## Configuration Architecture\n\n### Configuration Sources (Priority Order)\n1. **User Secrets** (`dotnet user-secrets`) - For API keys and sensitive data\n2. **appsettings.Development.json** - Development-specific overrides \n3. **appsettings.json** - Default provider configurations\n4. **Environment Variables** - System-level overrides\n\n### Key Configuration Patterns\n\n**LLM/Embedding Provider Configuration:**\n```json\n{\n \"LLM_BINDING\": \"openai\",\n \"LLM_MODEL\": \"gpt-4o-mini\",\n \"LLM_API_BASE\": \"https://api.openai.com/v1\",\n \"EMBEDDING_BINDING\": \"openai\",\n \"EMBEDDING_MODEL\": \"text-embedding-3-small\",\n \"EMBEDDING_API_BASE\": \"https://api.openai.com/v1\",\n \"EMBEDDING_DIM\": \"1536\"\n}\n```\n\n**Secret Management:**\n```bash\n# Store API keys securely\ndotnet user-secrets --project src/mixcore.host set LLM_API_KEY \"sk-...\"\ndotnet user-secrets --project src/mixcore.host set EMBEDDING_API_KEY \"nvapi-...\"\n```\n\n## Service Orchestration\n\n### Core Application\nThe primary web application is always included:\n```csharp\nbuilder.AddProject<Projects.mixcore>(\"mixcore\");\n```\n\n### Optional Services (Currently Commented Out)\nThe host supports a modular architecture where services can be enabled as needed:\n\n**Database Layer:**\n```csharp\n// PostgreSQL with persistent storage and pgAdmin\nvar postgres = builder.AddPostgres(\"postgres\")\n .WithDataVolume()\n .WithPgAdmin();\n \nvar db = postgres.AddDatabase(\"MixCmsConnection\", \"mixcore_structure\");\n```\n\n**AI/ML Infrastructure:**\n```csharp\n// Qdrant vector database for embeddings\nvar qdrant = builder.AddContainer(\"qdrant\", \"qdrant/qdrant\", \"v1.14.0\")\n .WithContainerName(\"mixcore-qdrant\")\n .WithLifetime(ContainerLifetime.Persistent);\n\n// LightRAG sidecar for retrieval-augmented generation\nvar lightRag = builder.AddContainer(\"lightrag\", \"ghcr.io/hkuds/lightrag\", \"v1.4.13rc1\")\n .WithContainerName(\"mixcore-lightrag\")\n .WithLifetime(ContainerLifetime.Persistent);\n```\n\n**Backend APIs:**\n```csharp\n// Installation API for setup workflows\nbuilder.AddProject<Projects.mix_installation_api>(\"mix-installation-api\")\n .WaitFor(db)\n .WithReference(db, connectionName: \"MixCmsConnection\");\n\n// Account management API\nbuilder.AddProject<Projects.mix_account>(\"mix-account\")\n .WaitFor(db)\n .WithReference(db, connectionName: \"MixAccountConnection\");\n\n// AI service API\nbuilder.AddProject<Projects.mix_ai>(\"mix-ai\");\n```\n\n**Monitoring Stack:**\n```csharp\n// Prometheus for metrics collection\nvar prometheus = builder.AddContainer(\"prometheus\", \"prom/prometheus\", \"v3.4.0\")\n .WithContainerName(\"mixcore-prometheus\")\n .WithLifetime(ContainerLifetime.Persistent);\n\n// Grafana for visualization\nbuilder.AddContainer(\"grafana\", \"grafana/grafana\", \"11.6.0\")\n .WithContainerName(\"mixcore-grafana\")\n .WithLifetime(ContainerLifetime.Persistent)\n .WaitFor(prometheus);\n```\n\n## Development Workflow\n\n### Launch Profiles\nTwo profiles are configured in `launchSettings.json`:\n\n1. **HTTPS Profile** (`https`)\n - URLs: `https://localhost:17082`, `http://localhost:15010`\n - Secure dashboard endpoints (OTLP, MCP, Resource Service)\n\n2. **HTTP Profile** (`http`) \n - URL: `http://localhost:15010`\n - HTTP-only dashboard endpoints\n\n### Environment Variables\nAspire-specific variables control dashboard communication:\n- `ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL` - OpenTelemetry endpoint\n- `ASPIRE_DASHBOARD_MCP_ENDPOINT_URL` - Model Context Protocol endpoint\n- `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL` - Resource service endpoint\n\n## Dependencies\n\n### Package References\n```xml\n<PackageReference Include=\"Aspire.Hosting.PostgreSQL\" Version=\"13.1.0\" />\n```\n\n### Project References\nThe host orchestrates these core projects:\n- `../apps/mixcore/mixcore.csproj` - Main web application\n- `../modules/account/mix.account/mix.account.csproj` - Account API\n- `../modules/ai/mix.ai/mix.ai.csproj` - AI service API\n\n## Architecture Diagram\n\n```mermaid\ngraph TB\n Host[mixcore.host<br/>Orchestrator]\n \n App[mixcore<br/>Web App]\n Account[mix-account<br/>Account API]\n AI[mix-ai<br/>AI Service]\n Install[mix-installation-api<br/>Install API]\n \n DB[(PostgreSQL)]\n Qdrant[Qdrant<br/>Vector DB]\n LightRAG[LightRAG<br/>RAG Engine]\n \n Prometheus[Prometheus]\n Grafana[Grafana]\n \n Host --> App\n Host --> Account\n Host --> AI\n Host --> Install\n \n App --> DB\n Account --> DB\n Install --> DB\n \n App --> LightRAG\n LightRAG --> Qdrant\n \n Prometheus --> App\n Prometheus --> Account\n Prometheus --> AI\n Grafana --> Prometheus\n```\n\n## Usage Examples\n\n### Minimal Development Setup\nRun only the core application:\n```bash\ndotnet run --project src/mixcore.host\n```\n\n### Enable Database Support\nUncomment the PostgreSQL section in `AppHost.cs`:\n```csharp\nvar postgres = builder.AddPostgres(\"postgres\")\n .WithDataVolume()\n .WithPgAdmin();\n \nvar db = postgres.AddDatabase(\"MixCmsConnection\", \"mixcore_structure\");\n\nbuilder.AddProject<Projects.mixcore>(\"mixcore\")\n .WaitFor(db)\n .WithReference(db);\n```\n\n### Configure AI Providers\nSet up LightRAG with custom providers in `appsettings.Development.json`:\n```json\n{\n \"LLM_BINDING\": \"deepseek\",\n \"LLM_MODEL\": \"deepseek-chat\",\n \"LLM_API_BASE\": \"https://api.deepseek.com/v1\",\n \"EMBEDDING_BINDING\": \"nvidia\",\n \"EMBEDDING_MODEL\": \"nvidia/nv-embed-v1\",\n \"EMBEDDING_API_BASE\": \"https://integrate.api.nvidia.com/v1\",\n \"EMBEDDING_DIM\": \"4096\"\n}\n```\n\n## Best Practices\n\n1. **Secrets Management**: Always use `dotnet user-secrets` for API keys—never commit them to appsettings files.\n\n2. **Service Dependencies**: Use `.WaitFor()` to ensure services start in the correct order.\n\n3. **Development vs Production**: Use `appsettings.Development.json` for local overrides; keep `appsettings.json` with safe defaults.\n\n4. **Container Naming**: Use `.WithContainerName()` for predictable container names in Docker.\n\n5. **Persistent Data**: Use `.WithDataVolume()` for databases to preserve data across container restarts.\n\n## Troubleshooting\n\n**Aspire Dashboard Not Loading**: \n- Check that the correct ASPIRE_* environment variables are set in your launch profile\n- Ensure no port conflicts with the configured endpoints\n\n**Containers Not Starting**:\n- Verify Docker is running\n- Check container images exist (e.g., `qdrant/qdrant:v1.14.0`)\n- Ensure sufficient system resources\n\n**Configuration Not Applying**:\n- Confirm configuration source priority\n- Check user secrets are properly set for the correct project\n- Verify environment variable names match expected values","src-modules":"# src — modules\n\n# Mix Account & Authentication Module\n\n## Overview\n\nThe Mix Account & Authentication module provides a comprehensive identity and access management system for the Mixcore platform. It handles user authentication, authorization, OAuth 2.0/OpenID Connect flows, user management, and email services through a set of integrated ASP.NET Core controllers, services, and middleware.\n\n## Key Components\n\n### 1. Controllers\n\n#### `MixAccountController`\nThe primary authentication controller that exposes RESTful endpoints for:\n- **Authentication**: Registration, login, logout, external login, token renewal\n- **User Management**: Profile retrieval, user listing, updates, deletion\n- **Password Management**: Forgot password, reset password, change password\n- **Email Confirmation**: Email verification workflows\n- **Tenant Management**: Multi-tenant user context\n\n**Key Endpoints:**\n- `POST /api/v3/rest/auth/register` - User registration with optional email confirmation\n- `POST /api/v3/rest/auth/login` - JWT-based authentication\n- `POST /api/v3/rest/auth/renew-token` - Refresh token exchange\n- `GET /api/v3/rest/auth/my-profile` - Current user profile\n- `POST /api/v3/rest/auth/connect/token` - OAuth 2.0 token endpoint\n\n#### `OAuthClientController`\nManages OAuth client applications (CRUD operations) for administrators.\n\n### 2. Authentication Services\n\n#### `MixIdentityService`\nThe core identity service implementing `IMixIdentityService` that handles:\n- Local authentication with email/username/phone\n- External provider authentication (Facebook, Google, Twitter, Microsoft)\n- JWT token generation and validation\n- Refresh token management\n- User registration and claims management\n\n**Token Flow:**\n```mermaid\ngraph LR\n A[Login Request] --> B[MixIdentityService]\n B --> C{Validate Credentials}\n C -->|Success| D[Generate JWT]\n D --> E[Create Refresh Token]\n E --> F[Cache Token]\n F --> G[Return Tokens]\n C -->|Failure| H[Return Error]\n \n I[Refresh Request] --> J[Validate Refresh Token]\n J --> K[Generate New JWT]\n K --> L[Return New Tokens]\n```\n\n#### `MixPermissionService`\nRole-based endpoint permission checking that:\n- Loads role→endpoint mappings from database\n- Caches permission patterns in memory\n- Supports regex-based endpoint pattern matching\n- Reloads permissions on demand\n\n### 3. Authorization Attributes\n\n#### `MixAuthorizeAttribute`\nCustom authorization filter that:\n- Validates JWT tokens and expiration\n- Checks role membership\n- Falls back to endpoint-level permission checking\n- Supports role inheritance (SuperAdmin/Owner bypass)\n\n#### `MixAuthorizeOptionalAttribute`\nOptional authorization for endpoints where authentication is optional but user context is still populated if available.\n\n### 4. OAuth Services\n\n#### `OAuthTokenService`\nHandles OAuth 2.0 authorization code and token flows:\n- Authorization request validation\n- Token generation (JWT)\n- PKCE (Proof Key for Code Exchange) support\n\n#### `OAuthClientService`\nManages OAuth client configuration with in-memory caching.\n\n#### `OAuthCodeStoreService`\nIn-memory store for authorization codes during OAuth code flow.\n\n### 5. Email Services\n\n#### `IMixEdmService` & `DefaultEdmService`\nEmail template service interface with a default no-op implementation. Can be replaced with real email providers (SendGrid, SMTP, etc.) in production.\n\n## Configuration\n\n### Authentication Settings\nThe module reads configuration from `appsettings.json`:\n\n```json\n{\n \"Authentication\": {\n \"SecretKey\": \"jwt-signing-key-min-32-chars\",\n \"ServiceApiKey\": \"service-to-service-api-key\",\n \"Issuer\": \"mixcore\",\n \"Audience\": \"mix\",\n \"AccessTokenExpiration\": 20,\n \"RefreshTokenExpiration\": 60,\n \"RequireConfirmedEmail\": false,\n \"Facebook\": { \"AppId\": \"\", \"AppSecret\": \"\" },\n \"Google\": { \"AppId\": \"\", \"AppSecret\": \"\" }\n }\n}\n```\n\n### Database Contexts\n- `MixCmsAccountContext`: User, role, and OAuth client storage\n- `MixCmsContext`: Permission and endpoint mappings\n- `MixDbDbContext`: System configuration and metadata\n\n## Integration Points\n\n### 1. Tenant Awareness\nThe module integrates with Mixcore's multi-tenant architecture:\n- Users can belong to multiple tenants\n- Tenant context is extracted from JWT claims\n- Role assignments are tenant-specific\n\n### 2. Caching Layer\nUses `MixCacheService` for:\n- Refresh token storage (with expiration)\n- Permission pattern caching\n- Session management\n\n### 3. File System Integration\nUses `MixFileHelper` for:\n- Email template storage\n- Configuration file management\n- Static asset handling\n\n### 4. External Providers\nSupports conditional registration of external authentication providers:\n- Facebook, Google, Twitter, Microsoft (conditional on AppId)\n- Azure AD via Microsoft Identity Web\n- Firebase integration\n\n## Security Features\n\n### 1. Token Security\n- JWT with HMAC-SHA256 signing\n- Short-lived access tokens (default 20 minutes)\n- Long-lived refresh tokens (default 60 minutes)\n- Token revocation on password change\n- PKCE support for public clients\n\n### 2. Password Policies\n- Configurable complexity requirements\n- Account lockout after failed attempts\n- Secure password reset flows\n\n### 3. Role-Based Access Control\n- Hierarchical role system (SuperAdmin → Owner → Administrators → ...)\n- Endpoint-level permission granularity\n- Regex-based endpoint pattern matching\n\n## Usage Examples\n\n### User Registration\n```csharp\nvar response = await httpClient.PostAsJsonAsync(\"/api/v3/rest/auth/register\", new {\n UserName = \"johndoe\",\n Email = \"john@example.com\",\n Password = \"securepassword\",\n ConfirmPassword = \"securepassword\"\n});\n```\n\n### JWT Authentication\n```csharp\nvar loginResponse = await httpClient.PostAsJsonAsync(\"/api/v3/rest/auth/login\", new {\n UserName = \"johndoe\",\n Password = \"securepassword\",\n RememberMe = true\n});\n\nvar token = loginResponse.AccessToken;\n// Use in Authorization header: Bearer {token}\n```\n\n### OAuth 2.0 Authorization Code Flow\n```\nGET /oauth/authorize?response_type=code&client_id={client_id}&redirect_uri={uri}\nPOST /api/v3/rest/auth/connect/token (with code exchange)\n```\n\n## Extension Points\n\n### 1. Custom Email Service\nImplement `IMixEdmService` and register in DI:\n```csharp\nbuilder.Services.AddScoped<IMixEdmService, MyEmailService>();\n```\n\n### 2. Custom Claims\nExtend `MixIdentityService.GetClaimsAsync()` to add custom claims to JWT tokens.\n\n### 3. External Provider Integration\nAdd new providers by extending `VerifyExternalAccessTokenAsync()` in `MixIdentityService`.\n\n### 4. Permission Sources\nModify `MixPermissionService.Reload()` to load permissions from alternative sources.\n\n## Error Handling\n\nThe module uses consistent error responses:\n- `400 Bad Request`: Invalid input, validation errors\n- `401 Unauthorized`: Invalid or missing credentials\n- `403 Forbidden`: Insufficient permissions\n- `423 Locked`: Account locked due to failed attempts\n- `500 Internal Server Error`: Server-side exceptions\n\n## Testing Considerations\n\n### Unit Testing\n- Mock `UserManager`, `SignInManager`, and `RoleManager`\n- Use in-memory database for `MixCmsAccountContext`\n- Test token generation and validation independently\n\n### Integration Testing\n- Test complete authentication flows\n- Verify external provider integration\n- Test permission checking with real endpoint patterns\n\n## Dependencies\n\n- **ASP.NET Core Identity**: Core authentication framework\n- **JWT Bearer Authentication**: Token-based authentication\n- **Entity Framework Core**: Data access\n- **Newtonsoft.Json**: JSON serialization for email templates\n- **Microsoft Identity Web**: Azure AD integration\n\n## Deployment Notes\n\n1. **Secrets Management**: Always override `SecretKey` and `ServiceApiKey` in production\n2. **HTTPS Enforcement**: Ensure all OAuth redirect URIs use HTTPS\n3. **Email Configuration**: Replace `DefaultEdmService` with production email service\n4. **Caching Strategy**: Configure distributed cache for multi-instance deployments\n5. **External Providers**: Register app credentials with respective providers\n\nThe Mix Account & Authentication module provides a robust, extensible foundation for identity management in Mixcore applications, supporting both traditional username/password authentication and modern OAuth 2.0/OpenID Connect flows.","src-monitoring":"# src — monitoring\n\n# Monitoring Module\n\nThis module provides the observability stack for the Mixcore application, consisting of Prometheus for metrics collection and Grafana for visualization and dashboards. It's designed to monitor ASP.NET Core applications instrumented with OpenTelemetry.\n\n## Overview\n\nThe monitoring module is a Docker-based observability solution that runs alongside the main application. It collects metrics from instrumented .NET services and provides pre-configured dashboards for performance monitoring, error tracking, and request analysis.\n\n## Components\n\n### 1. Prometheus Configuration (`prometheus.yml`)\n\nPrometheus is configured to scrape metrics from ASP.NET Core applications with the following key settings:\n\n- **Scrape Interval**: 15 seconds\n- **Evaluation Interval**: 15 seconds\n- **Targets**: \n - `host.docker.internal:5247` (Main application)\n - `host.docker.internal:5060` (Additional service)\n- **Authentication**: Uses `X-Api-Key` header for secure metric collection\n- **Network**: Configured to access host services from within Docker using `host.docker.internal`\n\n```yaml\n# Key configuration for development environment\n- job_name: mixcore-aspire\n http_headers:\n X-Api-Key:\n values: ['RE2OPBmwpYe9AIB0uSN2jF909BpiwWI8LY7TlmtHSpo']\n static_configs:\n - targets: ['host.docker.internal:5247','host.docker.internal:5060']\n labels:\n service: mixcore\n```\n\n### 2. Grafana Data Source Configuration (`prometheus.yml` in datasources)\n\nConfigures Grafana to use Prometheus as the primary data source:\n\n- **Name**: `Prometheus`\n- **UID**: `Prometheus`\n- **Type**: `prometheus`\n- **Access**: Proxy mode\n- **URL**: `http://prometheus:9090` (Docker container networking)\n- **Time Interval**: 15 seconds (matches Prometheus scrape interval)\n\n### 3. Dashboard Provisioning (`dashboard.yml`)\n\nAutomatically provisions dashboards from JSON files located at `/etc/grafana/provisioning/dashboards`:\n\n- **Provider**: File-based dashboard provider\n- **Organization**: OrgId 1\n- **Folder**: \"Mixcore\"\n- **Behavior**: Allows dashboard deletion (for updates)\n\n### 4. ASP.NET Core Dashboard (`dotnet-aspnetcore.json`)\n\nA comprehensive dashboard for monitoring ASP.NET Core applications with the following panels:\n\n#### Key Metrics Tracked\n\n**Request Performance:**\n- Request duration percentiles (p50, p75, p90, p95, p98, p99, p99.9)\n- Error rates (4XX and 5XX responses)\n- Current active connections and requests\n\n**Request Analysis:**\n- Total requests and unhandled exceptions\n- Request security breakdown (HTTP vs HTTPS)\n- HTTP protocol version distribution\n- Top 10 requested endpoints\n- Top 10 endpoints with unhandled exceptions\n\n#### Dashboard Features\n\n- **Template Variables**: Dynamic filtering by `job` and `instance`\n- **Refresh Rate**: 10 seconds for near real-time monitoring\n- **Time Range**: Default 5-minute window with flexible time picker\n- **Drill-down Links**: Clickable endpoints that navigate to detailed views\n- **Visual Design**: Color-coded metrics with appropriate thresholds\n\n#### Key Prometheus Queries\n\nThe dashboard uses several important PromQL queries:\n\n```promql\n# Request duration percentiles\nhistogram_quantile(0.50, sum(rate(http_server_request_duration_seconds_bucket{job=~\"$job\", instance=~\"$instance\"}[$__rate_interval])) by (le))\n\n# Error rate calculation\nsum(rate(http_server_request_duration_seconds_bucket{job=~\"$job\", instance=~\"$instance\", http_response_status_code=~\"4..|5..\"}[$__rate_interval]) or vector(0)) / sum(rate(http_server_request_duration_seconds_bucket{job=~\"$job\", instance=~\"$instance\"}[$__rate_interval]))\n\n# Top endpoints\ntopk(10, sum by (http_route, http_request_method, method_route) (label_join(ceil(increase(http_server_request_duration_seconds_count{job=~\"$job\", instance=~\"$instance\", http_route!=\"\"}[$__range])), \"method_route\", \" \", \"http_request_method\", \"http_route\")))\n```\n\n## Architecture\n\n```mermaid\ngraph TD\n A[ASP.NET Core App] -->|Exposes metrics on port 5247/5060| B[Prometheus]\n B -->|Scrapes every 15s| A\n B -->|Stores time-series data| C[(Prometheus DB)]\n D[Grafana] -->|Queries via datasource| B\n D -->|Reads dashboard config| E[Dashboard JSON]\n F[User] -->|Views dashboards| D\n G[Docker Compose] -->|Orchestrates| H[Monitoring Stack]\n \n subgraph H [Monitoring Services]\n B\n D\n end\n```\n\n## Integration with Application\n\n### Prerequisites\n\n1. **ASP.NET Core Instrumentation**: The application must be instrumented with OpenTelemetry metrics\n2. **Metric Endpoints**: `/metrics` endpoints must be exposed on the configured ports\n3. **API Key Authentication**: The application must accept the configured `X-Api-Key` header\n\n### Expected Metrics\n\nThe dashboard expects the following OpenTelemetry metrics from ASP.NET Core:\n\n- `http_server_request_duration_seconds_bucket` - Request duration histogram\n- `http_server_active_requests` - Current active requests\n- `kestrel_active_connections` - Current Kestrel connections\n- `http_response_status_code` - HTTP status codes\n- `http_route` - Request route labels\n- `http_request_method` - HTTP method labels\n- `url_scheme` - HTTP/HTTPS scheme\n- `network_protocol_version` - HTTP protocol version\n\n## Deployment and Configuration\n\n### Development Environment\n\nIn development (Aspire), the monitoring stack:\n1. Runs in Docker containers\n2. Accesses the host application via `host.docker.internal`\n3. Uses HTTP (not HTTPS) to avoid certificate issues\n4. Includes API key authentication for security\n\n### Production Considerations\n\nFor production deployment, consider:\n1. Updating Prometheus targets to use service discovery or DNS names\n2. Implementing HTTPS with proper certificates\n3. Adjusting scrape intervals based on load\n4. Adding alerting rules to Prometheus\n5. Configuring persistent storage for both Prometheus and Grafana\n\n## Usage\n\n### Accessing Dashboards\n\n1. Start the monitoring stack with Docker Compose\n2. Access Grafana at `http://localhost:3000` (default)\n3. Log in with default credentials (admin/admin) - change in production\n4. Navigate to the \"Mixcore\" folder to find the ASP.NET Core dashboard\n\n### Customizing Dashboards\n\nTo modify dashboards:\n1. Edit the JSON file at `src/monitoring/grafana/provisioning/dashboards/dotnet-aspnetcore.json`\n2. Restart the Grafana container to apply changes\n3. The dashboard will be automatically provisioned\n\n### Adding New Metrics\n\nTo track additional metrics:\n1. Ensure the application emits the new OpenTelemetry metrics\n2. Add new panels to the dashboard JSON\n3. Use appropriate PromQL queries to visualize the data\n\n## Troubleshooting\n\n### Common Issues\n\n1. **No data in Grafana**: \n - Check Prometheus targets are reachable (`http://localhost:9090/targets`)\n - Verify API key matches between Prometheus config and application\n - Confirm application is emitting metrics on the correct port\n\n2. **Dashboard not appearing**:\n - Check Grafana logs for provisioning errors\n - Verify dashboard JSON is valid\n - Ensure Grafana has read permissions on the dashboard file\n\n3. **High latency in metrics**:\n - Adjust Prometheus scrape interval if needed\n - Consider reducing dashboard refresh rate\n - Monitor resource usage of monitoring containers\n\n## Security Notes\n\n- The included API key is for development only - rotate for production\n- Consider implementing additional authentication for Grafana\n- Use network segmentation in production to limit access to monitoring services\n- Regularly update Prometheus and Grafana to security patches","src-platform":"# src — platform\n\n# Mix.Heart – ASP.NET Core Web/Service Development Framework\n\n## Overview\n\nMix.Heart is a comprehensive development framework for building ASP.NET Core web applications and services. It provides a robust foundation with data access patterns, view model management, repository implementations, and common utilities that streamline enterprise application development.\n\n## Core Architecture\n\nThe framework follows a layered architecture centered around ViewModels that bridge domain models with presentation layers, supported by generic repositories and a comprehensive helper ecosystem.\n\n```mermaid\ngraph TD\n A[Domain Models] --> B[ViewModelBase]\n B --> C[Repository Pattern]\n C --> D[Database Context]\n B --> E[Validation & Mapping]\n F[Helper Classes] --> B\n F --> C\n G[Common ViewModels] --> B\n```\n\n## Key Components\n\n### 1. ViewModelBase<TContext, TModel, TView>\n\nThe central abstraction that connects domain models to views/APIs. This generic base class provides:\n\n- **Automatic mapping** between models and view models using configurable mappers\n- **Built-in validation** with error collection\n- **CRUD operations** through repository patterns\n- **Transaction support** with unit of work\n- **Multi-culture support** for internationalization\n\n#### Basic Usage\n```csharp\npublic class PostViewModel : ViewModelBase<BlogContext, Post, PostViewModel>\n{\n public string Id { get; set; }\n \n [Required(ErrorMessage = \"Title is required\")]\n public string Title { get; set; }\n \n public DateTime CreatedDateUTC { get; set; }\n \n // View-specific property\n public DateTime CreatedDateLocal => CreatedDateUTC.ToLocalTime();\n \n public PostViewModel() { }\n \n public PostViewModel(Post model, BlogContext context = null, \n IDbContextTransaction transaction = null) \n : base(model, context, transaction) { }\n}\n```\n\n### 2. Repository System\n\nMix.Heart provides a flexible repository system with both entity and view repositories:\n\n#### DefaultRepositories\nSingleton factory that provides repository instances for ViewModel types:\n```csharp\nvar repository = DefaultRepositories<BlogContext, Post, PostViewModel>.Instance;\n```\n\n#### Repository Operations\n```csharp\n// Get single entity\nvar post = await PostViewModel.Repository.GetSingleModelAsync(p => p.Id == 1);\n\n// Get paged list with ordering\nvar posts = await PostViewModel.Repository.GetModelListAsync(\n \"CreatedDate\", OrderByDirection.Descending, pageSize, pageIndex);\n\n// Get filtered paged list\nvar filteredPosts = await PostViewModel.Repository.GetModelListByAsync(\n p => p.Title.Contains(\"search term\"),\n \"CreatedDate\", OrderByDirection.Descending, pageSize, pageIndex);\n```\n\n### 3. Common ViewModels\n\nPre-built view models for common patterns:\n\n- **PaginationViewModel<T>**: Standard paged result container\n- **RequestPaging**: Paging request parameters\n- **Response<T>**: Standard API response wrapper\n- **RepositoryResponse<T>**: Repository operation response\n\n### 4. Helper Classes\n\n#### SEOHelper\nUtilities for SEO-friendly URL generation and text normalization:\n```csharp\nstring seoName = SEOHelper.GetSEOString(\"My Blog Post Title\");\n// Returns: \"my-blog-post-title\"\n```\n\n#### UnitOfWorkHelper\nManages database transactions and unit of work patterns across operations.\n\n#### ReflectionHelper\nProvides serialization utilities including `ToByteArray()` for cache serialization and `InitSystemSerializer()` for JSON configuration.\n\n### 5. Infrastructure Services\n\n#### Database Service Integration\nMix.Heart integrates with the platform's database abstraction layer:\n- **CreateDatabaseService**: Factory for database context creation\n- **Multi-provider support**: SQL Server, SQLite, PostgreSQL, MySQL\n- **Connection management**: Centralized connection string configuration\n\n#### Cache System\n- **RedisCacheClient**: Redis-based caching implementation\n- **MixStaticFileCacheClient**: File-based caching for static resources\n- **Cache invalidation behaviors**: Automatic cache management\n\n#### File Management\n- **MixFileHelper**: File operations with folder management\n- **FileModel**: Standardized file representation\n- **CreateFolderIfNotExist**: Utility for directory management\n\n## Execution Patterns\n\n### CRUD Flow\n1. **Controller** receives request\n2. **ViewModel** validates and maps data\n3. **Repository** performs data operations\n4. **Unit of Work** manages transaction\n5. **Cache** updated/invalidated as needed\n\n### Query Flow with Caching\n```csharp\n// Typical query execution with caching\npublic async Task<Response<PaginationViewModel<T>>> GetListAsync()\n{\n // 1. Check cache\n // 2. Execute repository query if cache miss\n // 3. Parse entities to view models\n // 4. Set cache for future requests\n // 5. Return paginated results\n}\n```\n\n## Integration Points\n\n### SignalR Support\n- **SignalRModels**: Base classes for real-time communication\n- **Hub client services**: Managed connection lifecycle\n\n### Queue Systems\n- **Message queue integration**: RabbitMQ, Azure Service Bus, In-memory\n- **Dead letter handling**: Failed message processing\n- **Queue logging**: SQLite, MySQL, PostgreSQL providers\n\n### Authentication & Authorization\n- **MixIdentityService**: JWT token generation and validation\n- **Multi-tenant support**: Tenant-aware data isolation\n- **Service account tokens**: Machine-to-machine authentication\n\n## Configuration & Setup\n\n### Database Configuration\n```csharp\n// Context configuration with multi-provider support\npublic class BlogContext : DbContext\n{\n public DbSet<Post> Post { get; set; }\n \n protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\n {\n if (!optionsBuilder.IsConfigured)\n {\n // Support for multiple database providers\n optionsBuilder.UseSqlite(\"Data Source=blogging.db\");\n // optionsBuilder.UseSqlServer(connectionString);\n // optionsBuilder.UseNpgsql(connectionString);\n }\n }\n}\n```\n\n### Framework Initialization\n```csharp\n// Program.cs or Startup.cs\nservices.AddMixHeartFramework(configuration);\n```\n\n## Common Usage Patterns\n\n### Saving Entities\n```csharp\nvar saveResult = await postViewModel.SaveModelAsync();\nif (saveResult.IsSucceed)\n{\n // Success handling\n}\n```\n\n### Complex Operations with Transactions\n```csharp\nusing (var transaction = await context.Database.BeginTransactionAsync())\n{\n try\n {\n var viewModel = new PostViewModel(model, context, transaction);\n var result = await viewModel.SaveModelAsync(true); // Save with transaction\n \n if (result.IsSucceed)\n {\n await transaction.CommitAsync();\n }\n else\n {\n await transaction.RollbackAsync();\n }\n }\n catch\n {\n await transaction.RollbackAsync();\n throw;\n }\n}\n```\n\n## Best Practices\n\n1. **Always use ViewModelBase** for data operations rather than direct context access\n2. **Leverage repository patterns** for consistent data access\n3. **Use the built-in validation** before save operations\n4. **Implement proper error handling** using RepositoryResponse patterns\n5. **Consider cache strategies** for frequently accessed data\n6. **Use unit of work** for complex multi-entity transactions\n\n## Extension Points\n\n### Custom Repositories\nOverride `ViewRepositoryBase` for custom query logic:\n```csharp\npublic class CustomPostRepository : ViewRepositoryBase<BlogContext, Post, PostViewModel>\n{\n public async Task<RepositoryResponse<List<PostViewModel>>> GetRecentPostsAsync(int count)\n {\n // Custom implementation\n }\n}\n```\n\n### Custom Helpers\nExtend the helper ecosystem by adding static utility classes in the `Mix.Heart.Common.Helper` namespace.\n\n## Dependencies & Requirements\n\n- **.NET Core 3.1+ / .NET 5+**\n- **Entity Framework Core**\n- **AutoMapper** (for object mapping)\n- **StyleCop.Analyzers** (code analysis)\n- **Multiple database provider packages** (SQL Server, SQLite, etc.)\n\n## Testing Support\n\nThe framework is designed with testability in mind:\n- **Mockable repositories** through interface patterns\n- **Fake implementations** provided in test projects\n- **Behavior testing** for pipeline components (validation, caching, unit of work)\n- **Integration test helpers** for database scenarios\n\n## Performance Considerations\n\n1. **Eager loading** is managed through `ExpandViewAsync()` methods\n2. **Caching strategies** are built into query pipelines\n3. **Pagination support** prevents large data transfers\n4. **Connection pooling** managed by EF Core and database providers\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Mapping errors**: Ensure AutoMapper profiles are properly configured\n2. **Transaction conflicts**: Use the transaction parameter in ViewModel constructors\n3. **Cache inconsistencies**: Implement proper cache invalidation in update/delete operations\n4. **Validation failures**: Check the `Errors` collection on ViewModel after failed operations\n\n### Debugging Tips\n\n- Enable detailed logging in `appsettings.json`\n- Use the built-in `IsValid` property before save operations\n- Check `RepositoryResponse` objects for operation details\n- Monitor cache hit/miss ratios for performance tuning\n\n---\n\n*Mix.Heart provides a solid foundation for enterprise ASP.NET Core applications, reducing boilerplate code while maintaining flexibility for complex business requirements. Its opinionated patterns ensure consistency across projects while allowing extension points for specialized needs.*","src-src":"# src — src\n\n# src — Root Source Directory\n\n## Overview\n\nThe `src` directory is the root of the Mixcore v3 solution, containing the complete Visual Studio solution file, build configuration, and Docker Compose monitoring overlay. This directory serves as the entry point for building, running, and monitoring the entire Mixcore ecosystem.\n\n## Key Components\n\n### 1. Solution Structure (`mixcore.sln`)\n\nThe Visual Studio solution organizes 30+ projects into logical folders:\n\n```\nmixcore.sln\n├── platform/ # Core infrastructure\n│ ├── common/ # Shared utilities\n│ │ ├── mix.shared\n│ │ ├── mix.constant\n│ │ ├── mix.heart\n│ │ ├── mix.ui.shared\n│ │ └── mixcore.aspire.service\n│ ├── mix.database # Database abstractions\n│ ├── mix.lib # Core libraries\n│ └── communication/ # Communication services\n│ ├── mix.signalr\n│ ├── mix.notification\n│ ├── mix.queue\n│ └── mix.mqtt.lib\n├── modules/ # Feature modules\n│ ├── account/\n│ │ ├── mix.auth\n│ │ └── mix.account\n│ ├── cms/\n│ │ ├── mix.datasource\n│ │ └── mix.content\n│ ├── ai/\n│ │ ├── mix.ai\n│ │ └── mix.ai.ui\n│ ├── admin/\n│ │ └── mix.admin.ui\n│ └── installation/\n│ ├── mix.installation.lib\n│ ├── mix.installation.ui\n│ └── mix.installation.api\n├── apps/ # Main applications\n│ └── mixcore # Primary web application\n├── mixcore.host/ # Hosting infrastructure\n└── tests/ # Test projects\n ├── mix.database.migrations.tests\n ├── mix.datasource.tests\n ├── mix.gateway.tests\n ├── mix.aspire.service.tests\n ├── mix.account.tests\n ├── mix.queue.tests\n ├── mix.ai.tests\n ├── mix.cqrs.tests\n └── mix.installation.tests\n```\n\n### 2. Build Configuration (`Directory.Build.props`)\n\nThis file contains solution-wide MSBuild properties:\n\n```xml\n<Project>\n <PropertyGroup>\n <!-- Suppress package downgrade warnings caused by mix.heart 2.0.3 requiring EF Core 10.0.1\n while some projects pin 10.0.0 (Npgsql stable does not have a 10.0.1 release yet). -->\n <NoWarn>$(NoWarn);NU1605<\/NoWarn>\n <\/PropertyGroup>\n<\/Project>\n```\n\n**Purpose**: Suppresses NU1605 warnings related to Entity Framework Core version mismatches between `mix.heart` (10.0.1) and Npgsql dependencies (10.0.0).\n\n### 3. Monitoring Overlay (`docker-compose.monitoring.yml`)\n\nA Docker Compose overlay that adds Prometheus and Grafana to the main stack for observability.\n\n```mermaid\ngraph TD\n A[Main Stack<br/>docker-compose.yml] --> B{Monitoring Overlay};\n B --> C[Prometheus:9090];\n B --> D[Grafana:3000];\n C --> E[Scrapes .NET metrics];\n D --> F[Dashboards & Alerts];\n E --> G[ASP.NET Core Apps];\n F --> H[Auto-provisioned<br/>from monitoring/];\n \n style C fill:#e1f5e1\n style D fill:#e3f2fd\n```\n\n**Services**:\n- **Prometheus** (v3.4.0): Metrics collection and storage\n - Config: `monitoring/prometheus/prometheus.yml`\n - Port: 9090 (configurable via `PROMETHEUS_PORT`)\n - Storage: `prometheus-data` volume\n \n- **Grafana** (v11.6.0): Visualization and dashboards\n - Admin password: `admin` (configurable via `GF_SECURITY_ADMIN_PASSWORD`)\n - Port: 3000 (configurable via `GRAFANA_PORT`)\n - Auto-provisioning: `monitoring/grafana/provisioning/`\n - Storage: `grafana-data` volume\n\n**Usage**:\n```bash\n# From repository root\ndocker compose -f docker-compose.yml -f src/docker-compose.monitoring.yml up --build\n```\n\n## Build and Development\n\n### Supported Configurations\nThe solution supports multiple build configurations:\n- Debug/Release × Any CPU/x64/x86\n\n### Key Dependencies\n- **.NET Version**: Implicitly targets modern .NET (ASP.NET Core)\n- **Entity Framework Core**: 10.0.0-10.0.1 (with version warning suppression)\n- **Containerization**: Docker Compose with overlay support\n\n### Module Integration Pattern\nProjects follow a consistent naming and organization pattern:\n- `mix.*` - Core platform libraries\n- `mix.*.ui` - User interface components\n- `mix.*.api` - API endpoints\n- `mix.*.tests` - Test projects\n\n## Monitoring Architecture\n\nThe monitoring stack is designed as an optional overlay:\n\n1. **Metrics Collection**: ASP.NET Core apps expose Prometheus metrics\n2. **Scraping**: Prometheus periodically collects metrics from defined targets\n3. **Visualization**: Grafana provides dashboards with auto-provisioned data sources\n4. **Persistence**: Both services use Docker volumes for data persistence\n\n### Auto-provisioning\nGrafana is configured with provisioning files in `monitoring/grafana/provisioning/` that:\n- Define the Prometheus data source\n- Import dashboards for ASP.NET Core applications\n- Configure alerting rules (if defined)\n\n## Common Tasks\n\n### Adding a New Project\n1. Create the project in the appropriate folder (`platform/`, `modules/`, etc.)\n2. Add to `mixcore.sln` with correct folder nesting\n3. Ensure consistent naming with `mix.` prefix\n4. Add to appropriate build configurations\n\n### Running with Monitoring\n```bash\n# Start main application with monitoring\ndocker compose -f docker-compose.yml -f src/docker-compose.monitoring.yml up --build\n\n# Access monitoring tools\n# Prometheus: http://localhost:9090\n# Grafana: http://localhost:3000 (admin/admin)\n```\n\n### Build Warnings Management\nThe `Directory.Build.props` suppresses specific NuGet warnings. When updating EF Core or Npgsql versions, review if this suppression is still needed.\n\n## Troubleshooting\n\n### Version Conflicts\nIf encountering package version conflicts:\n1. Check `mix.heart` version requirements\n2. Verify Npgsql compatibility with EF Core version\n3. Update `Directory.Build.props` if warning suppression needs adjustment\n\n### Monitoring Stack Issues\nIf Prometheus/Grafana fail to start:\n1. Verify `monitoring/` directory exists with configuration files\n2. Check port conflicts (9090, 3000)\n3. Ensure Docker network `mixcore-net` exists (created by main compose)\n\n### Solution Loading\nIf projects fail to load in Visual Studio:\n1. Ensure all projects follow consistent naming\n2. Verify project GUIDs in solution file are unique\n3. Check folder nesting in `GlobalSection(NestedProjects)`","src-tests":"# src — tests\n\n# Mixcore Test Suite\n\n## Overview\n\nThe Mixcore test suite is a comprehensive collection of unit and integration tests that validate the functionality of Mixcore's modular architecture. Spanning multiple domains including authentication, AI services, database operations, and UI components, these tests ensure the reliability and correctness of the platform's core features.\n\n## Test Projects Structure\n\n### 1. **Account Module Tests** (`mix.account.tests`)\nTests for user authentication, registration, and account management functionality.\n\n#### Key Components:\n- **`MixAccountControllerTests`**: Unit tests for the main account controller\n - Tests login, logout, registration, password reset, and profile management\n - Uses in-memory SQLite database with mocked Identity services\n - Validates HTTP response codes and business logic flows\n\n- **Test Helpers**:\n - `FakeAccountDatabaseService`: SQLite in-memory database provider\n - `FakeAuthConfigService`: Mock authentication configuration\n - `CacheServiceFactory`: Creates mocked cache services for testing\n\n#### Example Test Flow:\n```mermaid\ngraph TD\n A[Test Setup] --> B[Create In-Memory DB]\n B --> C[Mock Identity Services]\n C --> D[Execute Controller Method]\n D --> E[Validate Response]\n E --> F[Verify Service Calls]\n```\n\n### 2. **AI Module Tests** (`mix.ai.tests`)\nTests for AI agents, RAG (Retrieval-Augmented Generation), and LLM integration.\n\n#### Key Components:\n- **Agent Tests**:\n - `AgentProviderResolutionTests`: Tests LLM provider selection\n - `RoutingAgentTests`: Validates intent-based routing to specialized agents\n - `TokenOptimizerTests`: Tests conversation history optimization\n\n- **Service Tests**:\n - `LlmServiceFactoryTests`: Tests provider service factory patterns\n - `EmbeddingServiceTests`: Validates vector embedding generation and caching\n - `SemanticSearchServiceTests`: Tests hybrid search functionality\n\n- **RAG System Tests**:\n - `ChunkingServiceTests`: Validates text chunking strategies\n - `LightRagClientTests`: Tests LightRag API integration\n - `LightRagInstructionSeederTests`: Tests documentation indexing\n\n#### Example Agent Resolution:\n```csharp\n// Tests that agents correctly resolve specified LLM providers\n[Fact]\npublic async Task ProcessAsync_WithProvider_ResolvesSpecifiedProvider()\n{\n var (factory, agent) = BuildChatAgent(BuildMockProviderService().Object);\n await agent.ProcessAsync(new AgentRequest(\"hello\", null, 1, null, Provider: LLMProvider.OpenAI));\n Assert.Equal(LLMProvider.OpenAI, factory.LastRequestedProvider);\n}\n```\n\n### 3. **Admin UI Tests** (`mix.admin.ui.tests`)\nEnd-to-end Playwright tests for the admin interface.\n\n#### Key Features Tested:\n- **Post Editor**: Title/slug generation, SEO tabs, scheduling, unsaved changes guard\n- **Post List**: Table rendering, filtering, navigation\n- **Layout**: Two-column editor layout, toolbar actions, sidebar components\n\n#### Test Execution Requirements:\n```bash\n# The app must be running before executing these tests\ndotnet run --project src/web/mix.web\n# Then run Playwright tests\ndotnet test src/tests/mix.admin.ui.tests\n```\n\n### 4. **Aspire Service Tests** (`mix.aspire.service.tests`)\nTests for service-to-service authentication and infrastructure components.\n\n#### Key Components:\n- **Service Account Authentication**:\n - `ServiceAccountTokenCacheTests`: Tests JWT token caching and refresh\n - `ServiceAccountTokenHandlerTests`: Validates Bearer token attachment\n - `ServiceAccountTokenHandlerFilterTests`: Tests HTTP client configuration\n\n- **Infrastructure**:\n - `LinkerdShutdownServiceTests`: Tests graceful shutdown delays for service mesh\n - `MapSecureDefaultEndpointsTests`: Validates secure endpoint mapping\n\n#### Service Account Flow:\n```mermaid\ngraph LR\n A[Service Client] --> B[Token Cache]\n B --> C{Token Valid?}\n C -->|Yes| D[Use Cached Token]\n C -->|No| E[Fetch New Token]\n E --> F[Cache Token]\n D --> G[Attach to Request]\n F --> G\n G --> H[Call Service]\n```\n\n### 5. **CQRS Tests** (`mix.cqrs.tests`)\nTests for Command Query Responsibility Segregation patterns and behaviors.\n\n#### Key Components:\n- **Behavior Tests**:\n - `UnitOfWorkBehaviorTests`: Tests transaction lifecycle management\n - `CacheInvalidationBehaviorTests`: Validates cache invalidation patterns\n - `ValidationBehaviorTests`: Tests request validation pipelines\n\n- **Integration Tests**:\n - `BehaviorOrderIntegrationTests`: Validates behavior execution order\n - `QueueEventNotificationHandlerTests`: Tests event notification handling\n\n#### CQRS Pipeline:\n```csharp\n// Example behavior pipeline\nservices.AddMediatR(cfg => {\n cfg.RegisterServicesFromAssemblyContaining<Startup>();\n cfg.AddBehavior(typeof(ValidationBehavior<,>));\n cfg.AddBehavior(typeof(UnitOfWorkBehavior<,>));\n cfg.AddBehavior(typeof(CacheInvalidationBehavior<,>));\n});\n```\n\n### 6. **Database Migration Tests** (`mix.database.migrations.tests`)\nTests for database migration and schema management.\n\n#### Key Components:\n- **Provider Tests**: Tests for SQL Server, MySQL, PostgreSQL, and SQLite providers\n- **Migration Tests**: Validates migration script execution and rollback\n- **Schema Tests**: Tests database schema creation and validation\n\n### 7. **DataSource Tests** (`mix.datasource.tests`)\nTests for data source configuration and migration.\n\n#### Key Components:\n- **Controller Tests**: `DataSourceControllerTests` for API endpoints\n- **Service Tests**: `DataSourceMigrationServiceTests` for migration logic\n- **ViewModel Tests**: `DataSourceTableDtoTests` for data transfer objects\n\n### 8. **Installation Tests** (`mix.installation.tests`)\nTests for system installation and initialization.\n\n#### Key Components:\n- **Controller Tests**: Tests for `InitCmsController` and database-specific variants\n- **Service Tests**: `InitCmsServiceTests` for initialization logic\n- **Configuration Tests**: Tests for installation configuration and validation\n\n## Test Architecture Patterns\n\n### 1. **In-Memory Database Testing**\n```csharp\n// SQLite named in-memory database with shared connection\ninternal const string ConnectionString = \n \"Data Source=MixAccountTest;Mode=Memory;Cache=Shared\";\n\nprivate readonly SqliteConnection _keepAlive;\nprivate readonly MixCmsAccountContext _accContext;\n\npublic MixAccountControllerTests()\n{\n _keepAlive = new SqliteConnection(FakeAccountDatabaseService.ConnectionString);\n _keepAlive.Open(); // Keep connection alive for test class lifetime\n _accContext = new MixCmsAccountContext(_dbService);\n _accContext.Database.EnsureCreated();\n}\n```\n\n### 2. **Mock Service Factory Pattern**\n```csharp\n// Factory pattern for creating test doubles\ninternal sealed class FakeLlmServiceFactory(IProviderService providerService)\n : LlmServiceFactory(new AIConfigurations(), NullLoggerFactory.Instance)\n{\n public LLMProvider? LastRequestedProvider { get; private set; }\n\n public override IProviderService GetProviderService(LLMProvider? provider = null)\n {\n LastRequestedProvider = provider;\n return providerService;\n }\n}\n```\n\n### 3. **Test-Specific HTTP Handlers**\n```csharp\n// Custom HTTP handlers for testing API clients\nprivate sealed class FakeHandler(Func<HttpRequestMessage, HttpResponseMessage> respond)\n : HttpMessageHandler\n{\n protected override Task<HttpResponseMessage> SendAsync(\n HttpRequestMessage req, CancellationToken ct)\n => Task.FromResult(respond(req));\n}\n```\n\n## Test Execution Configuration\n\n### Parallel Execution Control\n```csharp\n// Disable parallel execution for tests that access shared resources\n[assembly: CollectionBehavior(DisableTestParallelization = true)]\n```\n\n### Project Configuration\nEach test project follows a consistent structure:\n```xml\n<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <TargetFramework>net10.0<\/TargetFramework>\n <IsPackable>false<\/IsPackable>\n <IsTestProject>true<\/IsTestProject>\n <\/PropertyGroup>\n \n <ItemGroup>\n <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"18.3.0\" />\n <PackageReference Include=\"xunit\" Version=\"2.9.3\" />\n <PackageReference Include=\"Moq\" Version=\"4.20.72\" />\n <\/ItemGroup>\n<\/Project>\n```\n\n## Integration with Main Codebase\n\n### Test Coverage Areas:\n1. **Controllers**: HTTP API endpoints and response handling\n2. **Services**: Business logic and data processing\n3. **Agents**: AI processing and routing logic\n4. **Database**: Entity Framework contexts and migrations\n5. **Authentication**: Identity management and service accounts\n6. **UI Components**: Blazor component rendering and interaction\n\n### Dependency Injection in Tests:\n```csharp\nprivate (MixAccountController controller, Dependencies deps) Build(\n MixAuthenticationConfigurations? authConfig = null,\n ClaimsPrincipal? user = null)\n{\n // Build mocked dependencies\n var userManagerMock = new Mock<TenantUserManager>(...);\n var signInManagerMock = new Mock<SignInManager<MixUser>>(...);\n \n // Inject into controller\n var controller = new MixAccountController(\n userManagerMock.Object,\n signInManagerMock.Object,\n ...);\n \n return (controller, new Dependencies(...));\n}\n```\n\n## Best Practices\n\n### 1. **Isolated Test Data**\n- Each test class manages its own database connection\n- Test data is created and cleaned up per test\n- No shared state between test classes\n\n### 2. **Comprehensive Mocking**\n- Mock external dependencies (email services, LLM APIs)\n- Use test doubles for file system operations\n- Simulate error conditions and edge cases\n\n### 3. **Clear Test Naming**\n```csharp\n// Pattern: MethodName_Scenario_ExpectedResult\n[Fact]\npublic async Task Login_Always_ReturnsOkWithLoginResult()\n[Fact]\npublic async Task MyProfile_WhenUserIdClaimEmpty_ReturnsUnauthorized()\n[Fact]\npublic async Task Delete_WhenUserNotFound_ThrowsMixException()\n```\n\n### 4. **Resource Cleanup**\n```csharp\npublic sealed class MixAccountControllerTests : IDisposable\n{\n public void Dispose()\n {\n _accContext.Dispose();\n _keepAlive.Dispose(); // Close shared database connection\n }\n}\n```\n\n## Running Tests\n\n### Command Line:\n```bash\n# Run all tests\ndotnet test\n\n# Run specific test project\ndotnet test src/tests/mix.account.tests\n\n# Run with coverage\ndotnet test --collect:\"XPlat Code Coverage\"\n```\n\n### Visual Studio:\n- Use Test Explorer to run individual tests or test groups\n- Configure test settings in `.runsettings` files\n- Use Live Unit Testing for real-time feedback\n\n## Contributing to Tests\n\nWhen adding new features to Mixcore:\n\n1. **Add corresponding tests** in the appropriate test project\n2. **Follow existing patterns** for mocking and setup\n3. **Include edge cases** and error conditions\n4. **Update documentation** if test patterns change\n5. **Ensure tests pass** before submitting changes\n\nThe test suite serves as both a validation tool and living documentation of Mixcore's expected behavior, making it essential for maintaining code quality and preventing regressions.","src":"# src\n\n# src — Root Source Directory\n\n## Overview\n\nThe `src` directory is the root of the Mixcore v3 solution, serving as the central hub for building, running, and monitoring the entire platform. It contains the complete Visual Studio solution, the primary web application, the Aspire-based orchestration host, core platform modules, and supporting infrastructure for testing and observability.\n\n## Module Structure & Integration\n\nThe directory organizes the platform's architecture into distinct, interconnected sub-modules:\n\n```mermaid\ngraph TB\n Host[mixcore.host<br/>Aspire Orchestration] --> App[apps<br/>Primary Web App]\n Host --> Modules[modules<br/>Account & Auth]\n Host --> Monitoring[monitoring<br/>Prometheus & Grafana]\n\n App --> Platform[platform<br/>Mix.Heart Framework]\n Modules --> Platform\n App --> Modules\n\n Platform --> Tests[tests<br/>Test Suite]\n```\n\n* **[apps](apps.md)**: The primary MVC/Blazor hybrid web application and gateway. It handles user-facing content, administration, and can proxy requests to backend services.\n* **[mixcore.host](mixcore.host.md)**: The .NET Aspire application host that orchestrates all services, containers, and dependencies for development and deployment.\n* **[modules](modules.md)**: Contains dedicated service modules, starting with the Mix Account & Authentication system for comprehensive identity management.\n* **[platform](platform.md)**: The foundational `Mix.Heart` framework, providing shared data access patterns, view models, repositories, and utilities used across all other modules.\n* **[monitoring](monitoring.md)**: A Docker-based observability stack (Prometheus/Grafana) for collecting and visualizing metrics from instrumented services.\n* **[tests](tests.md)**: A comprehensive suite of unit and integration tests validating functionality across authentication, AI, database, and UI components.\n\n## Key Cross-Module Workflows\n\nThe modules are designed to work together through shared frameworks and defined execution flows:\n\n1. **Foundation & Shared Code**: The `[platform](platform.md)` module provides the core `Mix.Heart` framework. The `[apps](apps.md)` web application and the `[modules](modules.md)` (like Account) both build upon this shared foundation for data access and business logic.\n2. **Orchestration & Runtime**: The `[mixcore.host](mixcore.host.md)` Aspire host defines and wires together the web app, backend modules (Account, AI), and infrastructure (database, vector store). It is the entry point for launching the integrated system, optionally including the `[monitoring](monitoring.md)` stack.\n3. **Authentication Flow**: The `[apps](apps.md)` module's `AccountController` handles web-based login/registration, while the dedicated `[modules](modules.md)` provides the underlying RESTful API and services for identity management (`MixAccountController`, `MixIdentityService`).\n4. **Testing Shared Behaviors**: The `[tests](tests.md)` suite validates interactions across boundaries. For example, tests verify that the Installation module correctly initializes the database with default `MixUser` accounts from the Account module's entity models, and that CQRS behaviors properly manage unit-of-work transactions.\n\n## Getting Started\n\nTo build and run the complete Mixcore platform, start with the `[mixcore.host](mixcore.host.md)` project, which references and configures all necessary components. For development on a specific area like the web UI or authentication API, you can run the individual `[apps](apps.md)` or `[modules](modules.md)` projects directly.","tmp-schema":"# tmp_schema\n\n# tmp_schema Module\n\n## Overview\n\nThe `tmp_schema` module provides a temporary schema definition for the Mixcore CMS system. It contains a complete JSON representation of the database schema, including databases, tables, columns, relationships, and configuration metadata. This schema serves as a blueprint for database initialization, migration, and system configuration.\n\n## Schema Structure\n\nThe schema is defined as a JSON object with the following top-level structure:\n\n```json\n{\n \"isValid\": boolean,\n \"existingDatabases\": array,\n \"errors\": array,\n \"createdBy\": string|null,\n \"specificulture\": string|null,\n \"themeName\": string,\n \"themeSystemName\": string,\n \"themeId\": integer,\n \"posts\": array,\n \"pages\": array,\n \"modules\": array,\n \"mixDbDatabases\": array,\n \"mixDbTables\": array,\n \"exportMixDbDataIds\": array,\n \"mixDbTableRelationships\": array,\n \"templates\": array,\n \"configurations\": array,\n \"languages\": array,\n \"mixDbColumns\": array\n}\n```\n\n## Key Components\n\n### Database Configuration (`mixDbDatabases`)\n\nDefines database connections and settings. The schema includes one master database configured for MySQL:\n\n```json\n{\n \"databaseProvider\": \"MySQL\",\n \"aesKey\": \"encrypted_key\",\n \"connectionString\": \"encrypted_connection\",\n \"schema\": \"mix\",\n \"namingConvention\": \"SnakeCase\",\n \"systemName\": \"master\",\n \"displayName\": \"Master\",\n \"tenantId\": 1,\n \"status\": \"Deleted\",\n \"isDeleted\": false\n}\n```\n\n### Table Definitions (`mixDbTables`)\n\nContains definitions for 16 system and service tables. Each table includes metadata such as:\n\n- `systemName`: Internal identifier (e.g., `mix_workflow_action`, `ai_plans`)\n- `type`: Table classification (`System`, `Service`, `Association`, `GuidAdditionalData`)\n- `displayName`: Human-readable name\n- `status`: Publication status (`Published`)\n- `mixDbDatabaseId`: Foreign key to parent database\n- Permission settings for CRUD operations\n\n**Table Types:**\n- **System Tables**: Core CMS functionality (`mix_navigation`, `mix_media`, `mix_permission_endpoint`)\n- **Service Tables**: Business logic and workflows (`mix_workflow`, `ai_plans`, `ai_plan_steps`)\n- **Association Tables**: Relationship mapping (`mix_database_association`, `mix_user_permission`)\n- **GuidAdditionalData**: Extended user data (`mix_user_data`)\n\n### Column Definitions (`mixDbColumns`)\n\nDetailed column specifications for each table, including:\n\n- `systemName` and `displayName`\n- `dataType`: SQL data type (`String`, `Integer`, `DateTime`, `Json`, `Boolean`, `Guid`, etc.)\n- `configurations`: Field-level settings including:\n - `editor`: UI editor type\n - Validation rules (`isUnique`, `isRequire`, `maxLength`)\n - Security settings (`isEncrypt`)\n - Upload configurations for media fields\n- `defaultValue`: Default values\n- `priority`: Display ordering\n- `status`: Column status (`Published`)\n\n**Common Column Patterns:**\n- Audit columns: `created_by`, `created_date_time`, `last_modified`, `modified_by`\n- System columns: `id`, `priority`, `status`, `is_deleted`, `tenant_id`\n- Business columns: Vary by table purpose\n\n## Table Relationships\n\nThe schema defines several key relationships:\n\n```mermaid\ngraph TD\n DB[master Database] --> Workflow[mix_workflow]\n DB --> WorkflowAction[mix_workflow_action]\n DB --> WorkflowTrigger[mix_workflow_trigger]\n DB --> WorkflowActionData[mix_workflow_action_data]\n \n Workflow --> WorkflowAction\n Workflow --> WorkflowTrigger\n WorkflowTrigger --> WorkflowActionData\n WorkflowAction --> WorkflowActionData\n \n DB --> AIPlans[ai_plans]\n DB --> AIPlanSteps[ai_plan_steps]\n AIPlans --> AIPlanSteps\n \n DB --> UserData[mix_user_data]\n DB --> UserPermission[mix_user_permission]\n DB --> PermissionEndpoint[mix_permission_endpoint]\n UserData --> UserPermission\n PermissionEndpoint --> UserPermission\n```\n\n## Configuration System\n\n### Field Editors\nEach column specifies an `editor` type that determines how the field is rendered and validated in the UI:\n\n- **Basic Editors**: `String`, `Integer`, `DateTime`, `Boolean`, `Text`, `MultilineText`\n- **Specialized Editors**: `Json`, `Guid`, `Icon`, `Upload`\n- **Configuration-Driven**: `Select` (with `optionsConfigurationName`)\n\n### Permission Model\nTables define granular permissions for CRUD operations:\n- `readPermissions`, `createPermissions`, `updatePermissions`, `deletePermissions`\n- Values: `[\"Owner\"]`, empty arrays, or `null` for system tables\n\n### Status Management\nConsistent status tracking across all entities:\n- `status`: Current state (`Published`, `Deleted`)\n- `isDeleted`: Soft delete flag\n- `priority`: Display and processing order\n\n## Usage in the System\n\n### Database Initialization\nThe `tmp_schema` is used during:\n1. **First-time setup**: Creating the initial database structure\n2. **Migrations**: Comparing existing schema with this reference\n3. **Tenant provisioning**: Creating tenant-specific database instances\n\n### Runtime Configuration\n- **UI Generation**: Field `configurations` drive dynamic form creation\n- **Permission Validation**: Table-level permissions control API access\n- **Data Validation**: Column configurations enforce data integrity\n\n### Workflow System\nThe schema includes a complete workflow engine:\n- `mix_workflow`: Workflow definitions\n- `mix_workflow_action`: Individual workflow steps\n- `mix_workflow_trigger`: Event triggers\n- `mix_workflow_action_data`: Execution logs and results\n\n### AI Integration\nRecent additions support AI-powered features:\n- `ai_plans`: AI-generated execution plans\n- `ai_plan_steps`: Sequential steps within AI plans\n\n## Integration Points\n\n### With Mixcore CMS\n- **Theme System**: `themeName`, `themeSystemName`, `themeId` connect to frontend themes\n- **Content Management**: `posts`, `pages`, `modules` arrays (currently empty)\n- **Localization**: `specificulture` and `languages` support for multilingual content\n\n### With External Systems\n- **Database Providers**: MySQL support with encrypted connection strings\n- **Encryption**: AES-encrypted credentials in `aesKey` and `connectionString`\n- **Naming Conventions**: Configurable (`SnakeCase`) for database compatibility\n\n## Schema Validation\n\nThe `isValid` flag indicates whether the schema has passed integrity checks. Current issues:\n- `isValid`: `false` (schema requires validation)\n- `errors`: Empty array (no specific errors recorded)\n- Database status: `\"Deleted\"` while `isDeleted`: `false` (inconsistent state)\n\n## Maintenance and Updates\n\n### Adding New Tables\n1. Add table definition to `mixDbTables`\n2. Define all columns in `mixDbColumns` with proper `mixDbTableId` reference\n3. Set appropriate permissions and table `type`\n4. Update relationships if needed\n\n### Modifying Existing Tables\n1. Update column definitions in `mixDbColumns`\n2. Maintain backward compatibility for published columns\n3. Update `last_modified` timestamps\n4. Consider migration scripts for existing data\n\n### Best Practices\n- Keep `systemName` consistent with database actual names\n- Use descriptive `displayName` for UI presentation\n- Set appropriate `priority` for column ordering\n- Maintain audit columns (`created_by`, `created_date_time`, etc.)\n- Test schema validation after changes\n\n## Troubleshooting\n\n### Common Issues\n1. **Schema Invalid**: Check `errors` array and validate all foreign key references\n2. **Missing Columns**: Ensure all table columns are defined in `mixDbColumns`\n3. **Permission Issues**: Verify table `readPermissions`/`createPermissions`/etc. arrays\n4. **Data Type Mismatches**: Confirm `dataType` matches database column types\n\n### Validation Steps\n1. Verify all `mixDbTableId` references in columns exist in `mixDbTables`\n2. Check that all `mixDbDatabaseId` references in tables exist in `mixDbDatabases`\n3. Validate JSON structure against schema definition\n4. Test with actual database creation/migration\n\n## Future Considerations\n\n- **Schema Versioning**: Add version tracking for incremental updates\n- **Extended Validation**: More detailed error reporting in `errors` array\n- **Multiple Database Support**: Expand beyond single MySQL database\n- **Dynamic Schema Loading**: Support for runtime schema modifications\n- **Export/Import Tools**: Utilities for schema backup and restoration","wiki":"# wiki\n\n# Admin Panel Module Documentation\n\n## Overview\n\nThe Admin Panel module is a comprehensive Blazor-based administration interface for the Mixcore CMS platform. It provides a modern, business-focused user experience for managing all aspects of the CMS, including content, users, settings, and system configuration. The module replaces an older Angular-based admin interface with a more intuitive, performant Blazor implementation.\n\n## Architecture\n\n### Core Components\n\n```mermaid\ngraph TB\n AdminDashboard[AdminDashboard.razor] --> Navigation[AdminNavigationContext]\n AdminDashboard --> Shell[Shell Components]\n \n Shell --> Sidebar[Sidebar Navigation]\n Shell --> AppBar[Global Header]\n Shell --> Breadcrumb[Context Breadcrumb]\n \n AdminDashboard --> SectionRouter[Section Router]\n \n SectionRouter --> Dashboard[Dashboard Section]\n SectionRouter --> Content[Content Sections]\n SectionRouter --> Data[Data Sections]\n SectionRouter --> Site[Site Sections]\n SectionRouter --> Users[Users & Access]\n SectionRouter --> Settings[Settings Sections]\n SectionRouter --> Monitoring[Monitoring Sections]\n SectionRouter --> System[System Sections]\n \n Content --> Posts[Posts]\n Content --> Pages[Pages]\n Content --> Modules[Modules]\n Content --> Media[Media Library]\n Content --> Taxonomy[Taxonomy]\n \n Data --> Databases[Databases]\n Data --> DynamicData[Dynamic Data Tables]\n \n Users --> UserList[User List]\n Users --> Roles[Role Management]\n Users --> Permissions[Permissions]\n \n System --> Tenants[Tenant Management]\n System --> Scheduler[Scheduler]\n System --> Automations[Automations]\n \n style AdminDashboard fill:#e1f5fe\n style SectionRouter fill:#f3e5f5\n```\n\n### Key Design Decisions\n\n1. **Single-Page Application (SPA) Architecture**: The entire admin panel operates as a Blazor SPA within the main MVC application, providing fast navigation without full page reloads.\n\n2. **Three-Level Routing**: Uses `_activeSection`, `_activeSubSection`, and `_activeId` parameters to manage navigation state while maintaining URL addressability.\n\n3. **Direct Service Injection**: Components inject services directly rather than using HTTP API calls, reducing latency and complexity.\n\n4. **Role-Based Access Control**: Navigation items and functionality are dynamically shown/hidden based on user roles.\n\n## Core Components\n\n### AdminDashboard.razor\n\nThe root component that serves as the shell for the entire admin panel. It includes:\n\n- **Sidebar Navigation**: Collapsible sidebar with hierarchical menu structure\n- **Global Header**: Contains search, notifications, user menu, and theme toggle\n- **Main Content Area**: Renders the active section component based on routing state\n- **Modal/Dialog Host**: Provides portals for modal dialogs and toast notifications\n\n### AdminNavigationContext\n\nA sealed record cascaded through the component hierarchy to provide navigation capabilities:\n\n```csharp\npublic sealed record AdminNavigationContext(\n Func<string, string, Task> Navigate,\n Func<string, string, string, Task> NavigateToDetail\n);\n```\n\nThis context allows child components to trigger navigation without direct dependencies on the parent shell.\n\n### Section Components\n\nEach major area of the admin panel is implemented as a separate section component:\n\n- **DashboardSection.razor**: Main dashboard with KPIs and activity feeds\n- **PostListSection.razor**: Post management with filtering and bulk actions\n- **PostEditorSection.razor**: Full-featured post editor with WYSIWYG editing\n- **MediaLibrarySection.razor**: Media management with grid/list views\n- **UserEditorSection.razor**: User profile and role management\n- **SettingsSection.razor**: System configuration interface\n\n## Navigation System\n\n### URL Structure\n\nThe admin panel uses a clean URL structure:\n\n```\n/admin # Dashboard\n/admin/content/posts # Post list\n/admin/content/posts/{id} # Post editor\n/admin/data/{table} # Dynamic data table\n/admin/settings/general # General settings\n```\n\n### Navigation Flow\n\n1. User clicks a sidebar menu item\n2. `AdminDashboard.Navigate()` updates routing state\n3. `StateHasChanged()` triggers re-render\n4. Appropriate section component is rendered\n5. Section component loads data via injected services\n\n### Deep Linking Support\n\nThe MVC controller handles deep links and passes initial routing parameters to the Blazor component:\n\n```csharp\n// MVC Controller\npublic IActionResult Admin(string section = \"dashboard\", string subsection = \"\", string id = \"\")\n{\n return View(new AdminViewModel\n {\n InitialSection = section,\n InitialSubSection = subsection,\n InitialId = id\n });\n}\n```\n\n## UI Components and Patterns\n\n### Data Tables\n\nAll list screens use `BbDataTable` with consistent patterns:\n\n```razor\n<BbDataTable TData=\"PostRow\"\n Data=\"@_filtered\"\n ShowToolbar=\"true\"\n ShowPagination=\"true\"\n SelectionMode=\"DataTableSelectionMode.Multiple\">\n \n <ToolbarActions>\n <!-- Filter dropdowns using BbDropdownMenuCheckboxItem -->\n <\/ToolbarActions>\n \n <Columns>\n <!-- Sortable, filterable columns -->\n <!-- Row action menus using BbDropdownMenu -->\n <\/Columns>\n<\/BbDataTable>\n```\n\n### Editor Layouts\n\nEditor screens follow a consistent two-column layout:\n\n- **Left Column**: Main content area with tabbed interface\n- **Right Column**: Metadata panels (status, dates, images, etc.)\n\n### Form Components\n\nThe module uses BlazorBlueprint components for all form elements:\n\n- `BbInput`, `BbTextarea` for text input\n- `BbSelect` for dropdowns\n- `BbSwitch` for toggles\n- `BbDatePicker` for date selection\n- `BbFileUpload` for file uploads\n- `BbRichTextEditor` for WYSIWYG content\n\n## Data Flow\n\n### Service Integration\n\nComponents directly inject and use domain services:\n\n```csharp\n@code {\n [Inject] private IPostContentService PostService { get; set; } = default!;\n [Inject] private IMediaService MediaService { get; set; } = default!;\n \n private async Task LoadPosts()\n {\n _posts = await PostService.GetAllAsync(_currentCulture);\n }\n}\n```\n\n### Real-time Updates\n\nSignalR integration provides real-time updates for:\n\n- Audit log entries\n- Queue processing status\n- User activity feeds\n- Cache invalidation notifications\n\n## State Management\n\n### Component State\n\nEach section component manages its own state, including:\n\n- Filter criteria\n- Pagination state\n- Selection state\n- Form data\n\n### Navigation State\n\nThe shell maintains navigation state that persists across section changes:\n\n```csharp\nprivate string _activeSection = \"dashboard\";\nprivate string _activeSubSection = \"\";\nprivate string _activeId = \"\";\n```\n\n### User Preferences\n\nUser-specific preferences are stored in browser localStorage:\n\n- Sidebar collapsed/expanded state\n- Theme preference (light/dark)\n- Table column visibility\n- Filter presets\n\n## Security\n\n### Role-Based Access\n\nNavigation items and functionality are controlled by user roles:\n\n```razor\n@if (User.IsInRole(\"SuperAdmin\") || User.IsInRole(\"Administrator\"))\n{\n <BbSidebarMenuSubButton IsActive=\"@IsActive(\"system\",\"tenants\")\"\n @onclick=\"@(() => Navigate(\"system\",\"tenants\"))\">\n <LucideIcon Name=\"server\" class=\"h-4 w-4\" />\n <span>Tenants<\/span>\n <\/BbSidebarMenuSubButton>\n}\n```\n\n### Permission Checking\n\nAPI calls and data operations include permission validation at the service layer.\n\n## Performance Considerations\n\n### Lazy Loading\n\nSection components are loaded on-demand when navigating to their respective areas.\n\n### Virtual Scrolling\n\nLarge data tables use virtualization to maintain performance with thousands of rows.\n\n### Caching Strategy\n\n- Frequently accessed data (user lists, role lists) are cached in memory\n- Cache invalidation occurs on data modification\n- User-specific cache segments prevent cross-user data leakage\n\n## Integration Points\n\n### With MVC Application\n\nThe Blazor admin panel is embedded within the main MVC application:\n\n```razor\n@page \"/admin\"\n@inherits LayoutComponentBase\n\n<BbPortalHost />\n<BbToastProvider />\n\n<div class=\"admin-layout\">\n <!-- Blazor admin components -->\n<\/div>\n```\n\n### With Domain Services\n\nDirect service injection provides access to all domain functionality without HTTP overhead.\n\n### With SignalR Hub\n\nReal-time features connect to the existing SignalR hub for push notifications.\n\n## Development Guidelines\n\n### Adding New Sections\n\n1. Create section component in `Components/` directory\n2. Add navigation item to `AdminDashboard.razor`\n3. Implement routing logic in `AdminDashboard.razor.cs`\n4. Add any required services to dependency injection\n\n### Component Standards\n\n- Use BlazorBlueprint components exclusively\n- Follow established patterns for lists and editors\n- Include proper loading and error states\n- Implement keyboard navigation support\n- Ensure accessibility compliance\n\n### Testing Strategy\n\n- Unit tests for service integration\n- Component tests for UI logic\n- Integration tests for navigation flows\n- E2E tests for critical user journeys\n\n## Deployment Considerations\n\n### Bundle Size\n\nThe admin panel is part of the main application bundle. Tree shaking removes unused components.\n\n### Configuration\n\nAdmin-specific settings are managed through the standard configuration system.\n\n### Monitoring\n\nAdmin panel usage and errors are logged through the application's telemetry system.\n\n## Future Enhancements\n\nPlanned improvements include:\n\n1. **Offline Support**: Local caching of frequently accessed data\n2. **Progressive Web App**: Installable admin panel\n3. **Plugin System**: Extensible architecture for third-party modules\n4. **Advanced Analytics**: User behavior tracking and insights\n5. **AI Assistance**: Context-aware help and automation\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Navigation not working**: Ensure `StateHasChanged()` is called after navigation\n2. **Service injection failures**: Verify services are registered in DI container\n3. **Real-time updates not appearing**: Check SignalR connection status\n4. **Performance issues**: Implement virtualization for large datasets\n\n### Debugging Tips\n\n- Use browser developer tools to inspect Blazor component tree\n- Check SignalR connection logs for real-time issues\n- Monitor network traffic for unexpected API calls\n- Use application insights for server-side debugging\n\n## Related Documentation\n\n- [BlazorBlueprint Component Library](https://blazorblueprint.com)\n- [Mixcore Entity Framework Models](../mix.database/Entities/)\n- [Admin Panel API Endpoints](../Controllers/Admin/)\n- [SignalR Hub Implementation](../Hubs/AdminHub.cs)"};
var TREE = [{"name":"Root","slug":"root","files":["AGENTS.md","CLAUDE.md","README.md","docker-compose.yml","opencode.json","scalar.config.json"]},{"name":"docs","slug":"docs","files":["docs/superpowers/plans/2026-03-19-mix-account-refactor.md","docs/superpowers/plans/2026-03-20-linkerd-service-mesh-auth.md","docs/superpowers/plans/2026-03-23-mix-ai-module.md","docs/superpowers/plans/2026-03-23-queue-engine-config-validation.md","docs/superpowers/plans/2026-03-24-agent-per-request-provider-model.md","docs/superpowers/plans/2026-03-24-ai-config-step.md","docs/superpowers/plans/2026-03-25-mix-ai-service-gemini.md","docs/superpowers/plans/2026-03-25-mix-heart-cqrs-activation.md","docs/superpowers/plans/2026-03-25-queue-settings-service.md","docs/superpowers/plans/2026-03-27-lightrag-instructions-indexing.md","docs/superpowers/plans/2026-03-30-unified-provider-service.md","docs/superpowers/plans/2026-03-31-ai-embedding-config.md","docs/superpowers/plans/2026-04-01-datasource-mcp-tools.md","docs/superpowers/specs/2026-03-19-mix-account-refactor-design.md","docs/superpowers/specs/2026-03-20-linkerd-metrics-auth-design.md","docs/superpowers/specs/2026-03-23-mix-ai-design.md","docs/superpowers/specs/2026-03-24-ai-config-step-design.md","docs/superpowers/specs/2026-03-25-mix-ai-service-gemini-design.md","docs/superpowers/specs/2026-03-25-mix-heart-cqrs-design.md","docs/superpowers/specs/2026-03-25-queue-settings-service-design.md","docs/superpowers/specs/2026-03-30-unified-provider-service-design.md","docs/superpowers/specs/2026-03-31-ai-embedding-config-design.md"]},{"name":"src","slug":"src","files":[],"children":[{"name":"src — src","slug":"src-src","files":["src/Directory.Build.props","src/docker-compose.monitoring.yml","src/mixcore.sln"]},{"name":"src — apps","slug":"src-apps","files":["src/apps/mixcore/Controllers/AccountController.cs","src/apps/mixcore/Controllers/AdminController.cs","src/apps/mixcore/Controllers/AiChatController.cs","src/apps/mixcore/Controllers/HomeController.cs","src/apps/mixcore/Controllers/InitController.cs","src/apps/mixcore/Controllers/InstallationSetupController.cs","src/apps/mixcore/Dockerfile","src/apps/mixcore/DockerfileLinux","src/apps/mixcore/Domain/Handlers/PageContentHandlers.cs","src/apps/mixcore/Domain/Queries/GetPageBySeoName.cs","src/apps/mixcore/Domain/Services/PageContentService.cs","src/apps/mixcore/Domain/ViewModels/PageContentViewModel.cs","src/apps/mixcore/Gateway/AssemblyInfo.cs","src/apps/mixcore/Gateway/RouteChecker.cs","src/apps/mixcore/Models/ErrorViewModel.cs","src/apps/mixcore/Program.cs","src/apps/mixcore/Properties/PublishProfiles/FolderProfile.pubxml","src/apps/mixcore/Properties/launchSettings.json","src/apps/mixcore/Views/Account/Login.cshtml","src/apps/mixcore/Views/Admin/BlazorAdmin.cshtml","src/apps/mixcore/Views/Admin/Index.cshtml","src/apps/mixcore/Views/AiChat/Index.cshtml","src/apps/mixcore/Views/Home/App.cshtml","src/apps/mixcore/Views/Home/Index.cshtml","src/apps/mixcore/Views/Home/Page.cshtml","src/apps/mixcore/Views/Home/Post.cshtml","src/apps/mixcore/Views/Home/Privacy.cshtml","src/apps/mixcore/Views/Init/Index.cshtml","src/apps/mixcore/Views/Shared/Error.cshtml","src/apps/mixcore/Views/Shared/_AiChatLayout.cshtml","src/apps/mixcore/Views/Shared/_BlazorAdminLayout.cshtml","src/apps/mixcore/Views/Shared/_InitLayout.cshtml","src/apps/mixcore/Views/Shared/_Layout.cshtml","src/apps/mixcore/Views/Shared/_LoginLayout.cshtml","src/apps/mixcore/Views/Shared/_ValidationScriptsPartial.cshtml","src/apps/mixcore/Views/_ViewImports.cshtml","src/apps/mixcore/Views/_ViewStart.cshtml","src/apps/mixcore/appsettings.Development.json","src/apps/mixcore/appsettings.json","src/apps/mixcore/entrypoint.sh","src/apps/mixcore/mixcore.csproj","src/apps/mixcore/mixcore.csproj.Backup.tmp","src/apps/mixcore/wwwroot/css/admin.css","src/apps/mixcore/wwwroot/css/site.css","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ai-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/appsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/authsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/databases.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/endpoints.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ocelot.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/queue-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/templates/Readme.md","src/apps/mixcore/wwwroot/instructions/MIXCORE-CMS-OVERVIEW.md","src/apps/mixcore/wwwroot/instructions/START-HERE.md","src/apps/mixcore/wwwroot/instructions/content/modules.md","src/apps/mixcore/wwwroot/instructions/content/pages.md","src/apps/mixcore/wwwroot/instructions/content/posts.md","src/apps/mixcore/wwwroot/instructions/mixdb/README.md","src/apps/mixcore/wwwroot/instructions/mixdb/best-practices.md","src/apps/mixcore/wwwroot/instructions/mixdb/data-loading-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/database-creation-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/datasource-services-guide.md","src/apps/mixcore/wwwroot/instructions/reference/developer-guide.md","src/apps/mixcore/wwwroot/instructions/reference/mix-cms-reference.md","src/apps/mixcore/wwwroot/instructions/reference/reference-mcp-tools.md","src/apps/mixcore/wwwroot/instructions/templates/cshtml-razor-syntax-guidelines.md","src/apps/mixcore/wwwroot/instructions/templates/form-template.md","src/apps/mixcore/wwwroot/instructions/templates/master-template.md","src/apps/mixcore/wwwroot/instructions/templates/mixdb-template.md","src/apps/mixcore/wwwroot/instructions/templates/module-template.md","src/apps/mixcore/wwwroot/instructions/templates/page-template.md","src/apps/mixcore/wwwroot/instructions/templates/post-template.md","src/apps/mixcore/wwwroot/instructions/templates/widget-template.md","src/apps/mixcore/wwwroot/instructions/workflows/ai-content-editor-workflow.md","src/apps/mixcore/wwwroot/js/site.js","src/apps/mixcore/wwwroot/system-prompts/content-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/data-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/extract-tool-params.md","src/apps/mixcore/wwwroot/system-prompts/generate-column-value.md","src/apps/mixcore/wwwroot/system-prompts/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/generate-mixdb-record.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification-update-content.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/parse-schema-description.md","src/apps/mixcore/wwwroot/system-prompts/mcp/planning.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification-default-context.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification.md","src/apps/mixcore/wwwroot/system-prompts/module-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/planning-prompt.md","src/apps/mixcore/wwwroot/system-prompts/step-execution-prompt.md","src/apps/mixcore/wwwroot/system-prompts/tool-classification.md"]},{"name":"src — mixcore.host","slug":"src-mixcore-host","files":["src/mixcore.host/AppHost.cs","src/mixcore.host/Properties/launchSettings.json","src/mixcore.host/appsettings.Development.json","src/mixcore.host/appsettings.json","src/mixcore.host/mixcore.host.csproj"]},{"name":"src — modules","slug":"src-modules","files":["src/modules/account/mix.account/Controllers/MixAccountController.cs","src/modules/account/mix.account/Controllers/OAuthClientController.cs","src/modules/account/mix.account/Interfaces/IMixEdmService.cs","src/modules/account/mix.account/Program.cs","src/modules/account/mix.account/Properties/launchSettings.json","src/modules/account/mix.account/Services/DefaultEdmService.cs","src/modules/account/mix.account/Startup.cs","src/modules/account/mix.account/appsettings.Development.json","src/modules/account/mix.account/appsettings.json","src/modules/account/mix.account/mix.account.csproj","src/modules/account/mix.auth/Attributes/MixAuthorizeAttribute.cs","src/modules/account/mix.auth/Attributes/MixAuthorizeOptionalAttribute.cs","src/modules/account/mix.auth/Authorization/ClaimRequirement.cs","src/modules/account/mix.auth/Constants/MixClaims.cs","src/modules/account/mix.auth/Constants/MixRoles.cs","src/modules/account/mix.auth/Constants/OAuthConstants.cs","src/modules/account/mix.auth/DTOs/GrantPermissionsDto.cs","src/modules/account/mix.auth/DTOs/RenewTokenDto.cs","src/modules/account/mix.auth/Enums/AuthorizationGrantTypesEnum.cs","src/modules/account/mix.auth/Enums/MixExternalLoginProviders.cs","src/modules/account/mix.auth/Enums/MixRoleEnums.cs","src/modules/account/mix.auth/Enums/OAuthErrorType.cs","src/modules/account/mix.auth/Enums/TokenTypeEnum.cs","src/modules/account/mix.auth/Extensions/AuthServiceCollectionExtensions.cs","src/modules/account/mix.auth/Extensions/AuthenticationBuilderExtensions.cs","src/modules/account/mix.auth/Extensions/ServiceCollectionExtensions.cs","src/modules/account/mix.auth/Handlers/OAuthClientHandlers.cs","src/modules/account/mix.auth/Helpers/AuthExtensions.cs","src/modules/account/mix.auth/Helpers/JwtSecurityKeyHelper.cs","src/modules/account/mix.auth/Helpers/OAuth2ServerHelpers.cs","src/modules/account/mix.auth/Interfaces/IMessageSenders.cs","src/modules/account/mix.auth/Interfaces/IMixIdentityService.cs","src/modules/account/mix.auth/Interfaces/IOAuthClientService.cs","src/modules/account/mix.auth/Interfaces/IOAuthCodeStoreService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenRevocationService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenService.cs","src/modules/account/mix.auth/Models/ExternalLoginResultModel.cs","src/modules/account/mix.auth/Models/ExternalLoginViewModel.cs","src/modules/account/mix.auth/Models/ForgotPasswordRequestModel.cs","src/modules/account/mix.auth/Models/LoginRequestModel.cs","src/modules/account/mix.auth/Models/LoginResponseModel.cs","src/modules/account/mix.auth/Models/Manage/ManageViewModels.cs","src/modules/account/mix.auth/Models/OAuth/CheckOAuthClientResult.cs","src/modules/account/mix.auth/Models/OAuth/OAuthCode.cs","src/modules/account/mix.auth/Models/OAuth/OAuthRequest.cs","src/modules/account/mix.auth/Models/OAuth/OAuthServerOptions.cs","src/modules/account/mix.auth/Models/OAuth/Requests/OAuthRequests.cs","src/modules/account/mix.auth/Models/OAuth/Responses/OAuthResponses.cs","src/modules/account/mix.auth/Models/ParsedExternalAccessToken.cs","src/modules/account/mix.auth/Models/RegisterExternalBindingModel.cs","src/modules/account/mix.auth/Models/RegisterRequestModel.cs","src/modules/account/mix.auth/Models/ResetPasswordRequestModel.cs","src/modules/account/mix.auth/Models/RoleBOModel.cs","src/modules/account/mix.auth/Models/SearchAccountQueryModel.cs","src/modules/account/mix.auth/Models/TokenResponseModel.cs","src/modules/account/mix.auth/Models/UserRoleModel.cs","src/modules/account/mix.auth/Services/MessageSenders.cs","src/modules/account/mix.auth/Services/MixIdentityService.cs","src/modules/account/mix.auth/Services/MixPermissionService.cs","src/modules/account/mix.auth/Services/OAuthClientService.cs","src/modules/account/mix.auth/Services/OAuthCodeStoreService.cs","src/modules/account/mix.auth/Services/OAuthTokenRevocationService.cs","src/modules/account/mix.auth/Services/OAuthTokenService.cs","src/modules/account/mix.auth/Services/TenantIdentityServices.cs","src/modules/account/mix.auth/ViewModels/OAuthClientViewModel.cs","src/modules/account/mix.auth/mix.auth.csproj","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor.cs","src/modules/admin/mix.admin.ui/Components/AdminNavigationContext.cs","src/modules/admin/mix.admin.ui/Components/AiCompanionPanel.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor.js","src/modules/admin/mix.admin.ui/Components/AppEditorSection.razor","src/modules/admin/mix.admin.ui/Components/AppListSection.razor","src/modules/admin/mix.admin.ui/Components/AppearanceSection.razor","src/modules/admin/mix.admin.ui/Components/AuditLogSection.razor","src/modules/admin/mix.admin.ui/Components/AutomationSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DomainListSection.razor","src/modules/admin/mix.admin.ui/Components/DynamicDataSection.razor","src/modules/admin/mix.admin.ui/Components/FileManagerSection.razor","src/modules/admin/mix.admin.ui/Components/GoalsSection.razor","src/modules/admin/mix.admin.ui/Components/IntegrationSection.razor","src/modules/admin/mix.admin.ui/Components/IssuesSection.razor","src/modules/admin/mix.admin.ui/Components/KanbanSection.razor","src/modules/admin/mix.admin.ui/Components/LanguageSection.razor","src/modules/admin/mix.admin.ui/Components/LocalizationSection.razor","src/modules/admin/mix.admin.ui/Components/MediaLibrarySection.razor","src/modules/admin/mix.admin.ui/Components/MenuBuilderSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor.cs","src/modules/admin/mix.admin.ui/Components/OAuthClientSection.razor","src/modules/admin/mix.admin.ui/Components/PageEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PageListSection.razor","src/modules/admin/mix.admin.ui/Components/PermissionListSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor.cs","src/modules/admin/mix.admin.ui/Components/PostListSection.razor","src/modules/admin/mix.admin.ui/Components/PostListSection.razor.cs","src/modules/admin/mix.admin.ui/Components/ProfileSection.razor","src/modules/admin/mix.admin.ui/Components/QueueLogSection.razor","src/modules/admin/mix.admin.ui/Components/RoleManagerSection.razor","src/modules/admin/mix.admin.ui/Components/SchedulerSection.razor","src/modules/admin/mix.admin.ui/Components/SettingsSection.razor","src/modules/admin/mix.admin.ui/Components/TaxonomySection.razor","src/modules/admin/mix.admin.ui/Components/TenantEditorSection.razor","src/modules/admin/mix.admin.ui/Components/TenantListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeStoreSection.razor","src/modules/admin/mix.admin.ui/Components/UserEditorSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor.cs","src/modules/admin/mix.admin.ui/_Imports.razor","src/modules/admin/mix.admin.ui/mix.admin.ui.csproj","src/modules/ai/mix.ai.ui/Components/AiChatPage.razor","src/modules/ai/mix.ai.ui/Components/AiSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/ChatPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/McpSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/MessageItem.razor","src/modules/ai/mix.ai.ui/Components/Chat/ProviderModelPicker.razor","src/modules/ai/mix.ai.ui/Components/Preview/PreviewPanel.razor","src/modules/ai/mix.ai.ui/Models/AiSettingsModels.cs","src/modules/ai/mix.ai.ui/Models/ChatMessage.cs","src/modules/ai/mix.ai.ui/Models/ChatSession.cs","src/modules/ai/mix.ai.ui/Models/McpSettings.cs","src/modules/ai/mix.ai.ui/Services/AiChatService.cs","src/modules/ai/mix.ai.ui/Services/McpToolsService.cs","src/modules/ai/mix.ai.ui/_Imports.razor","src/modules/ai/mix.ai.ui/mix.ai.ui.csproj","src/modules/ai/mix.ai.ui/wwwroot/css/ai-chat.css","src/modules/ai/mix.ai/Agents/Base/AgentProcessResult.cs","src/modules/ai/mix.ai/Agents/Base/AgentRequest.cs","src/modules/ai/mix.ai/Agents/Base/BaseAgent.cs","src/modules/ai/mix.ai/Agents/Base/IAgent.cs","src/modules/ai/mix.ai/Agents/ChatAgent.cs","src/modules/ai/mix.ai/Agents/DatabaseAgent.cs","src/modules/ai/mix.ai/Agents/PlanningAgent.cs","src/modules/ai/mix.ai/Agents/RoutingAgent.cs","src/modules/ai/mix.ai/Agents/TaskAgent.cs","src/modules/ai/mix.ai/Background/LLMChatHostedService.cs","src/modules/ai/mix.ai/Background/RAGImportSubscriber.cs","src/modules/ai/mix.ai/Constants/AIHubMethods.cs","src/modules/ai/mix.ai/Constants/AIQueueTopics.cs","src/modules/ai/mix.ai/Constants/VectorDatabaseCollectionNames.cs","src/modules/ai/mix.ai/Controllers/AIChatController.cs","src/modules/ai/mix.ai/Controllers/AIGenerationController.cs","src/modules/ai/mix.ai/Controllers/RAGController.cs","src/modules/ai/mix.ai/Domain/Dtos/AskAIDto.cs","src/modules/ai/mix.ai/Domain/Dtos/GenerateValueDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchRequestDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchResponseDto.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIContentMessageViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIPlanViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AgentProcessResultViewModel.cs","src/modules/ai/mix.ai/Hubs/AIContentEditorHub.cs","src/modules/ai/mix.ai/Hubs/LLMHub.cs","src/modules/ai/mix.ai/Models/IntentCacheModels.cs","src/modules/ai/mix.ai/Models/TaskModels.cs","src/modules/ai/mix.ai/Program.cs","src/modules/ai/mix.ai/Properties/launchSettings.json","src/modules/ai/mix.ai/Services/AISettingsService.cs","src/modules/ai/mix.ai/Services/Agents/ConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IMcpClientService.cs","src/modules/ai/mix.ai/Services/Agents/ISystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/ITokenOptimizer.cs","src/modules/ai/mix.ai/Services/Agents/McpClientService.cs","src/modules/ai/mix.ai/Services/Agents/SystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/TokenOptimizer.cs","src/modules/ai/mix.ai/Services/ITaskStateService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIRequest.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIResponse.cs","src/modules/ai/mix.ai/Services/LLM/Generation/BaseGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GeminiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GenerationModality.cs","src/modules/ai/mix.ai/Services/LLM/Generation/IProviderService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/OpenAiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/LlmServiceFactory.cs","src/modules/ai/mix.ai/Services/MixAIService.cs","src/modules/ai/mix.ai/Services/RAG/ChunkingService.cs","src/modules/ai/mix.ai/Services/RAG/EmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/IEmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/ISemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/IVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/IndexingProgressReport.cs","src/modules/ai/mix.ai/Services/RAG/InstructionIndexingService.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagClient.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagInstructionSeeder.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagModels.cs","src/modules/ai/mix.ai/Services/RAG/PostgresVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/QdrantVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/RAGContext.cs","src/modules/ai/mix.ai/Services/RAG/RAGProcessor.cs","src/modules/ai/mix.ai/Services/RAG/SearchResult.cs","src/modules/ai/mix.ai/Services/RAG/SemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/VectorDbServiceFactory.cs","src/modules/ai/mix.ai/Services/RAG/VectorRecord.cs","src/modules/ai/mix.ai/Services/TaskService.cs","src/modules/ai/mix.ai/Services/TaskStateService.cs","src/modules/ai/mix.ai/Startup.cs","src/modules/ai/mix.ai/Tools/DatabaseQueryTool.cs","src/modules/ai/mix.ai/Tools/EchoTool.cs","src/modules/ai/mix.ai/Tools/FetchUrlTool.cs","src/modules/ai/mix.ai/Tools/IMixDbDataService.cs","src/modules/ai/mix.ai/Tools/MixDbDataTool.cs","src/modules/ai/mix.ai/Tools/MixDbSchemaTool.cs","src/modules/ai/mix.ai/Tools/MixModuleContentTool.cs","src/modules/ai/mix.ai/Tools/MixNavigationTool.cs","src/modules/ai/mix.ai/Tools/MixPageContentTool.cs","src/modules/ai/mix.ai/Tools/MixPageModuleTool.cs","src/modules/ai/mix.ai/Tools/MixPostContentTool.cs","src/modules/ai/mix.ai/Tools/MixTemplateTool.cs","src/modules/ai/mix.ai/Tools/NullMixDbDataService.cs","src/modules/ai/mix.ai/Tools/RAGSearchTool.cs","src/modules/ai/mix.ai/Tools/TextFileTool.cs","src/modules/ai/mix.ai/Tools/ToolDiscovery.cs","src/modules/ai/mix.ai/mix.ai.csproj","src/modules/cms/mix.content/Controllers/ModuleController.cs","src/modules/cms/mix.content/Controllers/PageController.cs","src/modules/cms/mix.content/Handlers/ModuleContentHandlers.cs","src/modules/cms/mix.content/Handlers/PageContentHandlers.cs","src/modules/cms/mix.content/Handlers/PostContentHandlers.cs","src/modules/cms/mix.content/Properties/launchSettings.json","src/modules/cms/mix.content/Services/CmsPageContentService.cs","src/modules/cms/mix.content/Services/ModuleContentService.cs","src/modules/cms/mix.content/Services/PostContentService.cs","src/modules/cms/mix.content/Startup.cs","src/modules/cms/mix.content/ViewModels/CmsPageContentViewModel.cs","src/modules/cms/mix.content/ViewModels/ModuleContentViewModel.cs","src/modules/cms/mix.content/ViewModels/PostContentViewModel.cs","src/modules/cms/mix.content/mix.content.csproj","src/modules/cms/mix.datasource/Controllers/DataSourceController.cs","src/modules/cms/mix.datasource/Controllers/DataSourceTableDataController.cs","src/modules/cms/mix.datasource/Cqrs/Commands/MigrateDatabaseCommand.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceDeleteCommandHandler.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceHandlers.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/MigrateDatabaseCommandHandler.cs","src/modules/cms/mix.datasource/Dtos/DataSourceTableDto.cs","src/modules/cms/mix.datasource/Dtos/SearchDataSourceTableRequestDto.cs","src/modules/cms/mix.datasource/Helpers/DataSourceDbHelper.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceMigrationService.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceTableDataService.cs","src/modules/cms/mix.datasource/Program.cs","src/modules/cms/mix.datasource/Properties/launchSettings.json","src/modules/cms/mix.datasource/Services/DataSourceMigrationService.cs","src/modules/cms/mix.datasource/Services/DataSourceTableDataService.cs","src/modules/cms/mix.datasource/Services/DatabaseCrudService.cs","src/modules/cms/mix.datasource/Services/MixDbDataService.cs","src/modules/cms/mix.datasource/Startup.cs","src/modules/cms/mix.datasource/ViewModels/DataSourceViewModel.cs","src/modules/cms/mix.datasource/mix.datasource.csproj","src/modules/installation/mix.installation.api/Controllers/InitCmsController.cs","src/modules/installation/mix.installation.api/Dockerfile","src/modules/installation/mix.installation.api/Program.cs","src/modules/installation/mix.installation.api/Properties/launchSettings.json","src/modules/installation/mix.installation.api/Startup.cs","src/modules/installation/mix.installation.api/appsettings.Development.json","src/modules/installation/mix.installation.api/appsettings.json","src/modules/installation/mix.installation.api/mix.installation.api.csproj","src/modules/installation/mix.installation.api/mix.installatoin.api.http","src/modules/installation/mix.installation.lib/Background/TemplateFileSubscriber.cs","src/modules/installation/mix.installation.lib/Commands/CreateDefaultTemplatesAndPagesCommand.cs","src/modules/installation/mix.installation.lib/DTOs/ImportOptionsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitCmsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitFullSiteDto.cs","src/modules/installation/mix.installation.lib/DTOs/SelectThemeDto.cs","src/modules/installation/mix.installation.lib/Handlers/CreateDefaultTemplatesAndPagesCommandHandler.cs","src/modules/installation/mix.installation.lib/Handlers/MixCultureHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixDbDatabaseHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixModuleHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageContentHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPostHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixTemplateHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixThemeHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/SiteInstallationHandlers.cs","src/modules/installation/mix.installation.lib/Import/ThemeImportContext.cs","src/modules/installation/mix.installation.lib/Interfaces/IInitCmsService.cs","src/modules/installation/mix.installation.lib/Interfaces/IMixThemeImportService.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Models/SiteDataModel.cs","src/modules/installation/mix.installation.lib/Services/AISettingsService.cs","src/modules/installation/mix.installation.lib/Services/InitCmsService.cs","src/modules/installation/mix.installation.lib/Services/MixDbDatabaseService.cs","src/modules/installation/mix.installation.lib/Services/MixThemeImportService.cs","src/modules/installation/mix.installation.lib/Services/ModuleService.cs","src/modules/installation/mix.installation.lib/Services/PageService.cs","src/modules/installation/mix.installation.lib/Services/PostService.cs","src/modules/installation/mix.installation.lib/Services/Processors/BaseThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/MixDbImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ModuleImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PageImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PostImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/TemplateImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ThemeImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/TemplateFileService.cs","src/modules/installation/mix.installation.lib/Services/TemplateService.cs","src/modules/installation/mix.installation.lib/Services/ThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Services/ThemeService.cs","src/modules/installation/mix.installation.lib/Startup.cs","src/modules/installation/mix.installation.lib/ViewModels/MixCultureViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixDbDatabaseViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixModuleViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageContentViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPostViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixTemplateViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixThemeViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/SiteInstallationViewModel.cs","src/modules/installation/mix.installation.lib/mix.installation.lib.csproj","src/modules/installation/mix.installation.ui/Components/InstallationWizard.razor","src/modules/installation/mix.installation.ui/Components/Steps/AdminAccountStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/AiConfigStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/CompletionStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/TenantSetupStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/ThemeImportCombinedStep.razor","src/modules/installation/mix.installation.ui/Models/WizardModels.cs","src/modules/installation/mix.installation.ui/_Imports.razor","src/modules/installation/mix.installation.ui/mix.installation.ui.csproj","src/modules/installation/mix.installation.ui/wwwroot/css/wizard.css"]},{"name":"src — monitoring","slug":"src-monitoring","files":["src/monitoring/grafana/provisioning/dashboards/dashboard.yml","src/monitoring/grafana/provisioning/dashboards/dotnet-aspnetcore.json","src/monitoring/grafana/provisioning/datasources/prometheus.yml","src/monitoring/prometheus/prometheus.yml"]},{"name":"src — platform","slug":"src-platform","files":["src/platform/common/mix-heart/README.md","src/platform/common/mix-heart/StyleCop.Cache","src/platform/common/mix-heart/git-reset-hard.bat","src/platform/common/mix-heart/nuget.config","src/platform/common/mix-heart/src/Constants/MixFileExtensions.cs","src/platform/common/mix-heart/src/Constants/MixHeartConstants.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/CacheInvalidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/UnitOfWorkBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/ValidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Commands/CreateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/DeleteCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveFieldsCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveManyCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/UpdateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/GenericViewModelHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/QueryHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/ICommand.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/IQuery.cs","src/platform/common/mix-heart/src/Cqrs/Notifications/MixEntityChangedNotification.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetByIdQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetListQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetPagingQuery.cs","src/platform/common/mix-heart/src/Cqrs/ServiceCollectionExtensions.Cqrs.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCache.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/MySqlCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/PostgresCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqlServerCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqliteCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Entity.cs","src/platform/common/mix-heart/src/Entities/EntityBase.cs","src/platform/common/mix-heart/src/Entities/IEntity.cs","src/platform/common/mix-heart/src/Entities/IHasPrimaryKey.cs","src/platform/common/mix-heart/src/Entities/SimpleEntityBase.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MSSQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MySQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/POSTGRES/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/SQLITE/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/Enums/ExpressionMethod.cs","src/platform/common/mix-heart/src/Enums/MixCacheMode.cs","src/platform/common/mix-heart/src/Enums/MixCacheStatus.cs","src/platform/common/mix-heart/src/Enums/MixContentStatus.cs","src/platform/common/mix-heart/src/Enums/MixDatabaseProvider.cs","src/platform/common/mix-heart/src/Enums/MixErrorStatus.cs","src/platform/common/mix-heart/src/Enums/SortDirection.cs","src/platform/common/mix-heart/src/Enums/ViewModelAction.cs","src/platform/common/mix-heart/src/Exceptions/EntityNotFoundException.cs","src/platform/common/mix-heart/src/Exceptions/MixException.cs","src/platform/common/mix-heart/src/Extensions/ExpressionExtensions.cs","src/platform/common/mix-heart/src/Extensions/IQueryableExtensions.cs","src/platform/common/mix-heart/src/Extensions/ModelBuilderExtensions.cs","src/platform/common/mix-heart/src/Extensions/ServiceExtension.cs","src/platform/common/mix-heart/src/Extensions/StringExtension.cs","src/platform/common/mix-heart/src/Factories/CacheEngineFactory.cs","src/platform/common/mix-heart/src/Helpers/AesEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/NewtonSoftHelper.cs","src/platform/common/mix-heart/src/Helpers/RSAEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/ReflectionHelper.cs","src/platform/common/mix-heart/src/Helpers/ViewModelHelper.cs","src/platform/common/mix-heart/src/Interfaces/IDitributedCacheClient.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/MySqlCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/PostgresCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/SqlServerCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/SqliteCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Model/EntityPropertyModel.cs","src/platform/common/mix-heart/src/Model/FileModel.cs","src/platform/common/mix-heart/src/Model/MixHeartConfigurationModel.cs","src/platform/common/mix-heart/src/Model/MixSortByColumn.cs","src/platform/common/mix-heart/src/Model/ModifiedEntityModel.cs","src/platform/common/mix-heart/src/Model/PagingModel.cs","src/platform/common/mix-heart/src/Model/PagingResponseModel.cs","src/platform/common/mix-heart/src/Model/RedisCacheConfigurationModel.cs","src/platform/common/mix-heart/src/Model/SaveResult.cs","src/platform/common/mix-heart/src/Repository/EntityRepository.cs","src/platform/common/mix-heart/src/Repository/IRepositoryBase.cs","src/platform/common/mix-heart/src/Repository/QueryRepository.cs","src/platform/common/mix-heart/src/Repository/Repository.cs","src/platform/common/mix-heart/src/Repository/RepositoryBase.cs","src/platform/common/mix-heart/src/Repository/ViewQueryRepository.cs","src/platform/common/mix-heart/src/ServiceCollectionExtensions.cs","src/platform/common/mix-heart/src/Services/AppSettingServiceBase.cs","src/platform/common/mix-heart/src/Services/ConfigurationServiceBase.cs","src/platform/common/mix-heart/src/Services/HybridCacheClient.cs","src/platform/common/mix-heart/src/Services/MixCacheService.cs","src/platform/common/mix-heart/src/Services/MixDatabaseCacheClient.cs","src/platform/common/mix-heart/src/Services/MixFileHelper.cs","src/platform/common/mix-heart/src/Services/MixStaticFileCacheClient.cs","src/platform/common/mix-heart/src/Services/RedisCacheClient.cs","src/platform/common/mix-heart/src/Services/SingletonService.cs","src/platform/common/mix-heart/src/UnitOfWork/GenericUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/IUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/UnitOfWorkInfo.cs","src/platform/common/mix-heart/src/ViewModel/IHeartViewModel.cs","src/platform/common/mix-heart/src/ViewModel/QueryViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/SimpleViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/ViewModelBase.cs","src/platform/common/mix-heart/src/mix.heart.csproj","src/platform/common/mix-heart/src/mix.heart.csproj.DotSettings","src/platform/common/mix-heart/src/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/platform/common/mix-heart/wiki/mix-heart.md","src/platform/common/mix.constant/Constants/BaseUrls.cs","src/platform/common/mix.constant/Constants/MixAppConfigFilePaths.cs","src/platform/common/mix.constant/Constants/MixAppSettingKeywords.cs","src/platform/common/mix.constant/Constants/MixAppSettingsSection.cs","src/platform/common/mix.constant/Constants/MixAuthConfigurations.cs","src/platform/common/mix.constant/Constants/MixConfigurationNames.cs","src/platform/common/mix.constant/Constants/MixConfigurations.cs","src/platform/common/mix.constant/Constants/MixConstants.cs","src/platform/common/mix.constant/Constants/MixCorsPolicies.cs","src/platform/common/mix.constant/Constants/MixDbCommandQueueActions.cs","src/platform/common/mix.constant/Constants/MixDbTableNames.cs","src/platform/common/mix.constant/Constants/MixDefaultThemes.cs","src/platform/common/mix.constant/Constants/MixDefaultValues.cs","src/platform/common/mix.constant/Constants/MixEncryptKeywords.cs","src/platform/common/mix.constant/Constants/MixEnvironments.cs","src/platform/common/mix.constant/Constants/MixFolders.cs","src/platform/common/mix.constant/Constants/MixModuleNames.cs","src/platform/common/mix.constant/Constants/MixQueryColumnName.cs","src/platform/common/mix.constant/Constants/MixQueueActions.cs","src/platform/common/mix.constant/Constants/MixQueueTopics.cs","src/platform/common/mix.constant/Constants/MixRepoDb.cs","src/platform/common/mix.constant/Constants/MixRequestQueryKeywords.cs","src/platform/common/mix.constant/Constants/MixTemplateFolders.cs","src/platform/common/mix.constant/Constants/MixThemePackageConstants.cs","src/platform/common/mix.constant/Enums/HttpRequestMethod.cs","src/platform/common/mix.constant/Enums/InitStep.cs","src/platform/common/mix.constant/Enums/MixAppConfigEnums.cs","src/platform/common/mix.constant/Enums/MixCalculateOperatorKind.cs","src/platform/common/mix.constant/Enums/MixConjunction.cs","src/platform/common/mix.constant/Enums/MixContentType.cs","src/platform/common/mix.constant/Enums/MixDataType.cs","src/platform/common/mix.constant/Enums/MixDatabaseNamingConvention.cs","src/platform/common/mix.constant/Enums/MixDbCommandQueueAction.cs","src/platform/common/mix.constant/Enums/MixDbDataAssociationType.cs","src/platform/common/mix.constant/Enums/MixDbTableParentType.cs","src/platform/common/mix.constant/Enums/MixDbTableRelationshipType.cs","src/platform/common/mix.constant/Enums/MixDbTableType.cs","src/platform/common/mix.constant/Enums/MixEncryptType.cs","src/platform/common/mix.constant/Enums/MixExpressionRule.cs","src/platform/common/mix.constant/Enums/MixLogicalOperatorKind.cs","src/platform/common/mix.constant/Enums/MixMenuItemType.cs","src/platform/common/mix.constant/Enums/MixModuleType.cs","src/platform/common/mix.constant/Enums/MixMvcViewMode.cs","src/platform/common/mix.constant/Enums/MixPageType.cs","src/platform/common/mix.constant/Enums/MixQueueMessageLogState.cs","src/platform/common/mix.constant/Enums/MixQueueProvider.cs","src/platform/common/mix.constant/Enums/MixResponseKey.cs","src/platform/common/mix.constant/Enums/MixResponseStatus.cs","src/platform/common/mix.constant/Enums/MixRestAction.cs","src/platform/common/mix.constant/Enums/MixRestStatus.cs","src/platform/common/mix.constant/Enums/MixStorageProvider.cs","src/platform/common/mix.constant/Enums/MixStructureType.cs","src/platform/common/mix.constant/Enums/MixTemplateFolderType.cs","src/platform/common/mix.constant/Enums/MixUrlAliasType.cs","src/platform/common/mix.constant/Enums/MixUserStatus.cs","src/platform/common/mix.constant/mix.constant.csproj","src/platform/common/mix.shared/Base/ViewModel/TenantDataViewModelBase.cs","src/platform/common/mix.shared/Dtos/AlterColumnDto.cs","src/platform/common/mix.shared/Dtos/FilterContentRequestDto.cs","src/platform/common/mix.shared/Dtos/GetIdsDto.cs","src/platform/common/mix.shared/Dtos/MixDbCollumnDto.cs","src/platform/common/mix.shared/Dtos/MixQueryField.cs","src/platform/common/mix.shared/Dtos/SearchMixDbRequestDto.cs","src/platform/common/mix.shared/Dtos/SearchQueryField.cs","src/platform/common/mix.shared/Dtos/SearchRequestDto.cs","src/platform/common/mix.shared/Enums/ApplicationType.cs","src/platform/common/mix.shared/Extensions/ConfigurationBuilderExtensions.cs","src/platform/common/mix.shared/Extensions/ConfigurationExtension.cs","src/platform/common/mix.shared/Extensions/CorsExtensions.cs","src/platform/common/mix.shared/Extensions/JObjectExtensions.cs","src/platform/common/mix.shared/Extensions/MiddlewareExtensions.cs","src/platform/common/mix.shared/Extensions/ServiceCollectionExtensions.cs","src/platform/common/mix.shared/Extensions/SessonExtensions.cs","src/platform/common/mix.shared/Extensions/SwaggerExtensions.cs","src/platform/common/mix.shared/Helpers/MixAssemblyFinder.cs","src/platform/common/mix.shared/Helpers/MixCmsHelper.cs","src/platform/common/mix.shared/Helpers/MixHelper.cs","src/platform/common/mix.shared/Helpers/SEOHelper.cs","src/platform/common/mix.shared/Interfaces/IGlobalConfigurations.cs","src/platform/common/mix.shared/Interfaces/IStartupService.cs","src/platform/common/mix.shared/Middleware/InitRedirectMiddleware.cs","src/platform/common/mix.shared/MixAssemblyFinder.cs","src/platform/common/mix.shared/Models/ApiResponseModel.cs","src/platform/common/mix.shared/Models/ColumnConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AIConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AgentModel.cs","src/platform/common/mix.shared/Models/Configurations/AppSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/DatabaseConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/EndpointConfigurationsModel.cs","src/platform/common/mix.shared/Models/Configurations/GlobalSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/GoogleSettingModel.cs","src/platform/common/mix.shared/Models/Configurations/LLMCredentialModels.cs","src/platform/common/mix.shared/Models/Configurations/LogConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixAuthenticationConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixRateLimitConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/OcelotConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/PortalConfigurationModel.cs","src/platform/common/mix.shared/Models/ConnectionStrings.cs","src/platform/common/mix.shared/Models/DataRelationshipModel.cs","src/platform/common/mix.shared/Models/HttpRequestModel.cs","src/platform/common/mix.shared/Models/MixCultureModel.cs","src/platform/common/mix.shared/Models/MixDbAuditLogModel.cs","src/platform/common/mix.shared/Models/PagingRequestModel.cs","src/platform/common/mix.shared/Models/SearchMixDbRequestModel.cs","src/platform/common/mix.shared/Models/SmtpConfiguration.cs","src/platform/common/mix.shared/Services/HttpService.cs","src/platform/common/mix.shared/Services/JsonConfigurationServiceBase.cs","src/platform/common/mix.shared/Services/JsonConfigurationsServiceBase.cs","src/platform/common/mix.shared/mix.shared.csproj","src/platform/common/mix.ui.shared/Catalog/AiProviderCatalog.cs","src/platform/common/mix.ui.shared/Components/AI/LlmCredentialsEditor.razor","src/platform/common/mix.ui.shared/Models/AiCredentialEntry.cs","src/platform/common/mix.ui.shared/_Imports.razor","src/platform/common/mix.ui.shared/mix.ui.shared.csproj","src/platform/common/mix.ui.shared/wwwroot/css/llm-editor.css","src/platform/common/mixcore.aspire.service/ApiKey/ApiKeyAuthenticationHandler.cs","src/platform/common/mixcore.aspire.service/Extensions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdForwardedHeadersStartupFilter.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdOptions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdShutdownService.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountOptions.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenCache.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandler.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerFilter.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerOptions.cs","src/platform/common/mixcore.aspire.service/mixcore.aspire.service.csproj","src/platform/communication/mix.mqtt.lib/Controllers/MqttController.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/Logger_Samples.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/PackageInspection_Samples.cs","src/platform/communication/mix.mqtt.lib/Extensions/StartupExtensions.cs","src/platform/communication/mix.mqtt.lib/Helpers/CertificateHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/MqttHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/ObjectExtensions.cs","src/platform/communication/mix.mqtt.lib/Models/AppSettingsProvider.cs","src/platform/communication/mix.mqtt.lib/Models/BrokerHostSettings.cs","src/platform/communication/mix.mqtt.lib/Models/ClientSettings.cs","src/platform/communication/mix.mqtt.lib/Models/MQTTSetting.cs","src/platform/communication/mix.mqtt.lib/RpcClient/RpcClient_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_ASP_NET_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Diagnostics_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Intercepting_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Retained_Messages_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Simple_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_TLS_Samples.cs","src/platform/communication/mix.mqtt.lib/Service/MqttServerHostedService.cs","src/platform/communication/mix.mqtt.lib/mix.mqtt.lib.csproj","src/platform/communication/mix.notification/Interfaces/IMixEdmService.cs","src/platform/communication/mix.notification/Services/MixEdmService.cs","src/platform/communication/mix.notification/mix.notification.csproj","src/platform/communication/mix.queue/Attributes/GeneratePublisherAttribute.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/GrpcStreamingService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqGrpcService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqStartupService.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/Readme.md","src/platform/communication/mix.queue/Engines/Mqtt/MqttPublisher.cs","src/platform/communication/mix.queue/Engines/Mqtt/MqttSubscriber.cs","src/platform/communication/mix.queue/Engines/PublisherBase.cs","src/platform/communication/mix.queue/Engines/QueueEngineFactory.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQPublisher.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQSubscriber.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitModelPooledObjectPolicy.cs","src/platform/communication/mix.queue/Engines/SubscriberBase.cs","src/platform/communication/mix.queue/Extensions/QueueServiceCollectionExtension.cs","src/platform/communication/mix.queue/Interfaces/IMemoryQueueService.cs","src/platform/communication/mix.queue/Interfaces/IQueuePublisher.cs","src/platform/communication/mix.queue/Interfaces/IQueueSubscriber.cs","src/platform/communication/mix.queue/Models/GrpcChannelModel.cs","src/platform/communication/mix.queue/Models/MessageQueueModel.cs","src/platform/communication/mix.queue/Models/MessageQueueSettings.cs","src/platform/communication/mix.queue/Models/MixQueueMessages.cs","src/platform/communication/mix.queue/Models/MixSubscribtionModel.cs","src/platform/communication/mix.queue/Models/MixTopicModel.cs","src/platform/communication/mix.queue/Models/QueueSetting/AzureQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/GoogleQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/IQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/KafkaQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/MixQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/RabitMqQueueSetting.cs","src/platform/communication/mix.queue/Protos/mixmq.proto","src/platform/communication/mix.queue/Readme.md","src/platform/communication/mix.queue/Services/MemoryQueueService.cs","src/platform/communication/mix.queue/Services/MessageQueueSettingsService.cs","src/platform/communication/mix.queue/mix.queue.csproj","src/platform/communication/mix.signalr/Constants/HubEndpoints.cs","src/platform/communication/mix.signalr/Constants/HubMethods.cs","src/platform/communication/mix.signalr/Enums/MessageAction.cs","src/platform/communication/mix.signalr/Enums/MessageType.cs","src/platform/communication/mix.signalr/HubClients/BaseHubClientService.cs","src/platform/communication/mix.signalr/HubClients/PortalHubClientService.cs","src/platform/communication/mix.signalr/Hubs/BaseSignalrHub.cs","src/platform/communication/mix.signalr/Hubs/PortalHub.cs","src/platform/communication/mix.signalr/Interfaces/IHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/ILogStreamHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/IMixDbCommandHubClientService.cs","src/platform/communication/mix.signalr/Models/HubUserModel.cs","src/platform/communication/mix.signalr/Models/SignalRMessageModel.cs","src/platform/communication/mix.signalr/mix.signalr.csproj","src/platform/mix.database/Base/AccountEntityBaseConfiguration.cs","src/platform/mix.database/Base/BaseDbContext.cs","src/platform/mix.database/Base/Cms/AssociationBaseConfiguration.cs","src/platform/mix.database/Base/Cms/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/Base/IDatabaseConstants.cs","src/platform/mix.database/Base/Service/TenantServiceBase.cs","src/platform/mix.database/Base/_CassandraDatabaseConstants.cs","src/platform/mix.database/Base/_MySqlDatabaseConstants.cs","src/platform/mix.database/Base/_PostgresSqlDatabaseConstants.cs","src/platform/mix.database/Base/_SqlServerDatabaseConstants.cs","src/platform/mix.database/Base/_SqliteDatabaseConstants.cs","src/platform/mix.database/Constants/MixDbDatabaseNames.cs","src/platform/mix.database/DesignTimeFactories/DesignTimeConnectionStrings.cs","src/platform/mix.database/DesignTimeFactories/MixCmsContextDesignTimeFactories.cs","src/platform/mix.database/Entities/AI/AIDatabaseNames.cs","src/platform/mix.database/Entities/AI/AIDbContext.cs","src/platform/mix.database/Entities/AI/AIPlan.cs","src/platform/mix.database/Entities/AI/AIPlanEnums.cs","src/platform/mix.database/Entities/AI/AIPlanStep.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanConfiguration.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanStepConfiguration.cs","src/platform/mix.database/Entities/Account/AspNetRoleClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserLogins.cs","src/platform/mix.database/Entities/Account/AspNetUserRoles.cs","src/platform/mix.database/Entities/Account/AspNetUserTokens.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetRoleClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserLoginsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUserTenantConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUsersConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthClientConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthTokenConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/RefreshTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/SysMixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Account/MixPermission.cs","src/platform/mix.database/Entities/Account/MixRole.cs","src/platform/mix.database/Entities/Account/MixUser.cs","src/platform/mix.database/Entities/Account/MixUserTenant.cs","src/platform/mix.database/Entities/Account/OAuthClient.cs","src/platform/mix.database/Entities/Account/OAuthToken.cs","src/platform/mix.database/Entities/Account/RefreshTokens.cs","src/platform/mix.database/Entities/Account/SysMixDbDataAssociation.cs","src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs","src/platform/mix.database/Entities/Account/_MySqlAccountContext.cs","src/platform/mix.database/Entities/Account/_PostgresSQLAccountContext.cs","src/platform/mix.database/Entities/Account/_SqlServerAccountContext.cs","src/platform/mix.database/Entities/Account/_SqliteAccountContext.cs","src/platform/mix.database/Entities/AuditLog/AuditLog.cs","src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs","src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs","src/platform/mix.database/Entities/Base/AssociationBase.cs","src/platform/mix.database/Entities/Base/ExtraColumnMultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualUniqueNameContentBase.cs","src/platform/mix.database/Entities/Base/TenantEntityBase.cs","src/platform/mix.database/Entities/Base/TenantEntityUniqueNameBase.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixApplicationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixContributorConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixCultureConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbColumnConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDatabaseConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableRelationshipConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDiscussionConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDomainConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixMediaConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleDataConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModulePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPagePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixTenantConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixThemeConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixUrlAliasConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixViewTemplateConfiguration.cs","src/platform/mix.database/Entities/Cms/MixApplication.cs","src/platform/mix.database/Entities/Cms/MixConfiguration.cs","src/platform/mix.database/Entities/Cms/MixConfigurationContent.cs","src/platform/mix.database/Entities/Cms/MixContributor.cs","src/platform/mix.database/Entities/Cms/MixCulture.cs","src/platform/mix.database/Entities/Cms/MixDbColumn.cs","src/platform/mix.database/Entities/Cms/MixDbDataAssociation.cs","src/platform/mix.database/Entities/Cms/MixDbDatabase.cs","src/platform/mix.database/Entities/Cms/MixDbTable.cs","src/platform/mix.database/Entities/Cms/MixDbTableRelationship.cs","src/platform/mix.database/Entities/Cms/MixDiscussion.cs","src/platform/mix.database/Entities/Cms/MixDomain.cs","src/platform/mix.database/Entities/Cms/MixLanguage.cs","src/platform/mix.database/Entities/Cms/MixLanguageContent.cs","src/platform/mix.database/Entities/Cms/MixMedia.cs","src/platform/mix.database/Entities/Cms/MixModule.cs","src/platform/mix.database/Entities/Cms/MixModuleContent.cs","src/platform/mix.database/Entities/Cms/MixModuleData.cs","src/platform/mix.database/Entities/Cms/MixModulePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPage.cs","src/platform/mix.database/Entities/Cms/MixPageContent.cs","src/platform/mix.database/Entities/Cms/MixPageModuleAssociation.cs","src/platform/mix.database/Entities/Cms/MixPagePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPost.cs","src/platform/mix.database/Entities/Cms/MixPostContent.cs","src/platform/mix.database/Entities/Cms/MixPostPostAssociation.cs","src/platform/mix.database/Entities/Cms/MixTemplate.cs","src/platform/mix.database/Entities/Cms/MixTenant.cs","src/platform/mix.database/Entities/Cms/MixTheme.cs","src/platform/mix.database/Entities/Cms/MixUrlAlias.cs","src/platform/mix.database/Entities/Cms/_MixCmsContext.cs","src/platform/mix.database/Entities/Cms/_MySqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_PostgresqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqlServerMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqliteMixCmsContext.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAccess.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAudit.cs","src/platform/mix.database/Entities/Compliance/ConsentEvent.cs","src/platform/mix.database/Entities/Compliance/DataFieldMetadata.cs","src/platform/mix.database/Entities/Compliance/DataProtectionImpactAssessment.cs","src/platform/mix.database/Entities/Compliance/DpiaMitigation.cs","src/platform/mix.database/Entities/Compliance/DpiaRisk.cs","src/platform/mix.database/Entities/Compliance/DsrRequest.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAccessConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAuditConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/ConsentEventConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataFieldMetadataConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataProtectionImpactAssessmentConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaMitigationConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaRiskConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DsrRequestConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/PurposeConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionExecutionConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionPolicyConfiguration.cs","src/platform/mix.database/Entities/Compliance/Purpose.cs","src/platform/mix.database/Entities/Compliance/RetentionExecution.cs","src/platform/mix.database/Entities/Compliance/RetentionPolicy.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataContentAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbEventSubscriberConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixMenuItemConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixNavigationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionEndpointConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PortalMenuConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserDataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserPermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/MixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/MixDbEventSubscriber.cs","src/platform/mix.database/Entities/MixDb/MixMenuItem.cs","src/platform/mix.database/Entities/MixDb/MixMetadata.cs","src/platform/mix.database/Entities/MixDb/MixMetadataContentAssociation.cs","src/platform/mix.database/Entities/MixDb/MixNavigation.cs","src/platform/mix.database/Entities/MixDb/MixPermission.cs","src/platform/mix.database/Entities/MixDb/MixPermissionEndpoint.cs","src/platform/mix.database/Entities/MixDb/MixPortalMenu.cs","src/platform/mix.database/Entities/MixDb/MixUserData.cs","src/platform/mix.database/Entities/MixDb/MixUserPermission.cs","src/platform/mix.database/Entities/MixDb/MySqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/PostgresSqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqlServerMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqliteMixDbDbContext.cs","src/platform/mix.database/Entities/Quartz/QrtzBlobTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzCalendar.cs","src/platform/mix.database/Entities/Quartz/QrtzCronTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzFiredTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzJobDetail.cs","src/platform/mix.database/Entities/Quartz/QrtzLock.cs","src/platform/mix.database/Entities/Quartz/QrtzPausedTriggerGrp.cs","src/platform/mix.database/Entities/Quartz/QrtzSchedulerState.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpleTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpropTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzTrigger.cs","src/platform/mix.database/Entities/Quartz/_MySqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_PostgresSqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_QuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SQliteQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SqlServerQuartzDbContext.cs","src/platform/mix.database/Entities/Queue/EntityConfigurations/MixQueueMessageConfiguration.cs","src/platform/mix.database/Entities/Queue/MixQueueDbContext.cs","src/platform/mix.database/Entities/Queue/MixQueueMessageLog.cs","src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs","src/platform/mix.database/Entities/QueueLog/QueueLog.cs","src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs","src/platform/mix.database/Entities/Settings/GlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/MixGlobalSetting.cs","src/platform/mix.database/Entities/Settings/MySqlGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/PostgresGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqlServerGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqliteGlobalSettingContext.cs","src/platform/mix.database/EntityConfigurations/Base/AssociationBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/SimpleEntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Converters/EncryptedStringConverter.cs","src/platform/mix.database/EntityConfigurations/Converters/StringToJArrayConverter.cs","src/platform/mix.database/EntityConfigurations/MYSQL/Quartz/MySqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/POSTGRES/Quartz/PostgresSqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/PropertyBuilderExtensions.cs","src/platform/mix.database/EntityConfigurations/SQLITE/Quartz/SQLiteQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/SQLSERVER/Quartz/SqlServerQuartzConfigurations.cs","src/platform/mix.database/Extensions/EntityTypeBuilderExtensions.cs","src/platform/mix.database/Extensions/ModelBuilderExtensions.cs","src/platform/mix.database/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.Designer.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.cs","src/platform/mix.database/Migrations/Account/MySql/MySqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.cs","src/platform/mix.database/Migrations/Account/Postgres/PostgresSqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.Designer.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.cs","src/platform/mix.database/Migrations/Account/SqlServer/SqlServerAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.cs","src/platform/mix.database/Migrations/Account/Sqlite/SqliteAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/MySql/MySqlAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/PostgresAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/SqlServerAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/SqliteAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.Designer.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.cs","src/platform/mix.database/Migrations/Cms/MySql/MySqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.cs","src/platform/mix.database/Migrations/Cms/Postgres/PostgresqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.cs","src/platform/mix.database/Migrations/Cms/SqlServer/SqlServerMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.Designer.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.cs","src/platform/mix.database/Migrations/MixQueueDb/MixQueueDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.cs","src/platform/mix.database/Migrations/Quartz/MySql/MySQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.cs","src/platform/mix.database/Migrations/Quartz/Postgres/PostgresSQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/SQLServerQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/SQLiteQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.cs","src/platform/mix.database/Migrations/QueueLog/MySql/MySqlQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/PostgresQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/SqlServerQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/SqlITEQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Extensions/GlobalSettingMigrationExtensions.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.cs","src/platform/mix.database/Migrations/Settings/MySql/MySqlGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.cs","src/platform/mix.database/Migrations/Settings/Postgres/PostgresGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.cs","src/platform/mix.database/Migrations/Settings/SqlServer/SqlServerGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.cs","src/platform/mix.database/Migrations/Settings/Sqlite/SqliteGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Models/MixTenantSystemModel.cs","src/platform/mix.database/Properties/launchSettings.json","src/platform/mix.database/Readme.md","src/platform/mix.database/Services/AppSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/AuthConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/DatabaseService.cs","src/platform/mix.database/Services/MixGlobalSettings/EnvironmentService.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingServiceBase.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/IPSecurityConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixEndpointService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixHeartConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/PortalConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/SmtpConfigService.cs","src/platform/mix.database/TokenTypeEnum.cs","src/platform/mix.database/mix.database.csproj","src/platform/mix.database/wwwroot/default-mixcontent/setting-files/databases.json","src/platform/mix.lib/Controllers/CrudControllerBase.cs","src/platform/mix.lib/Controllers/ReadOnlyControllerBase.cs","src/platform/mix.lib/Controllers/TenantControllerBase.cs","src/platform/mix.lib/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.lib/Helpers/DataTypeHelper.cs","src/platform/mix.lib/Interfaces/ICrudService.cs","src/platform/mix.lib/Interfaces/ITenantService.cs","src/platform/mix.lib/Models/SearchQuery.cs","src/platform/mix.lib/Notifications/QueueEventNotificationHandler.cs","src/platform/mix.lib/Notifications/SignalRNotificationHandler.cs","src/platform/mix.lib/Services/CrudService.cs","src/platform/mix.lib/Services/TenantService.cs","src/platform/mix.lib/Services/TenantServiceBase.cs","src/platform/mix.lib/mix.lib.csproj"]},{"name":"src — tests","slug":"src-tests","files":["src/tests/mix.account.tests/Controllers/MixAccountControllerTests.cs","src/tests/mix.account.tests/GlobalTestSettings.cs","src/tests/mix.account.tests/Helpers/CacheServiceFactory.cs","src/tests/mix.account.tests/Helpers/FakeAccountDatabaseService.cs","src/tests/mix.account.tests/Helpers/FakeAuthConfigService.cs","src/tests/mix.account.tests/mix.account.tests.csproj","src/tests/mix.admin.ui.tests/PostEditorTests.cs","src/tests/mix.admin.ui.tests/mix.admin.ui.tests.csproj","src/tests/mix.ai.tests/Agents/AgentProviderResolutionTests.cs","src/tests/mix.ai.tests/Agents/ConversationManagerTests.cs","src/tests/mix.ai.tests/Agents/FakeLlmServiceFactory.cs","src/tests/mix.ai.tests/Agents/RoutingAgentTests.cs","src/tests/mix.ai.tests/Agents/TokenOptimizerTests.cs","src/tests/mix.ai.tests/Controllers/AIChatControllerTests.cs","src/tests/mix.ai.tests/Controllers/RAGControllerTests.cs","src/tests/mix.ai.tests/GlobalTestSettings.cs","src/tests/mix.ai.tests/Services/ChunkingServiceTests.cs","src/tests/mix.ai.tests/Services/EmbeddingServiceTests.cs","src/tests/mix.ai.tests/Services/LlmServiceFactoryTests.cs","src/tests/mix.ai.tests/Services/MixAIServiceTests.cs","src/tests/mix.ai.tests/Services/PostgresVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/QdrantVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagClientTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagInstructionSeederTests.cs","src/tests/mix.ai.tests/Services/SemanticSearchServiceTests.cs","src/tests/mix.ai.tests/mix.ai.tests.csproj","src/tests/mix.aspire.service.tests/Extensions/AddServiceAccountAuthTests.cs","src/tests/mix.aspire.service.tests/Extensions/MapSecureDefaultEndpointsTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdForwardedHeadersStartupFilterTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdShutdownServiceTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenCacheTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerFilterTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerTests.cs","src/tests/mix.aspire.service.tests/mix.aspire.service.tests.csproj","src/tests/mix.cqrs.tests/AssemblyInfo.cs","src/tests/mix.cqrs.tests/Behaviors/BehaviorOrderIntegrationTests.cs","src/tests/mix.cqrs.tests/Behaviors/CacheInvalidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/UnitOfWorkBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/ValidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Fakes/FakeCacheService.cs","src/tests/mix.cqrs.tests/Fakes/FakeMediator.cs","src/tests/mix.cqrs.tests/Fakes/FakeUow.cs","src/tests/mix.cqrs.tests/Fakes/TestDbContext.cs","src/tests/mix.cqrs.tests/Fakes/TestEntity.cs","src/tests/mix.cqrs.tests/Fakes/TestViewModel.cs","src/tests/mix.cqrs.tests/Notifications/QueueEventNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/Notifications/SignalRNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/mix.cqrs.tests.csproj","src/tests/mix.database.migrations.tests/GlobalTestSettings.cs","src/tests/mix.database.migrations.tests/Helpers/TestConnections.cs","src/tests/mix.database.migrations.tests/Helpers/TestDatabaseServiceFactory.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/appsettings.example.json","src/tests/mix.database.migrations.tests/mix.database.migrations.tests.csproj","src/tests/mix.datasource.tests/Controllers/DataSourceControllerTests.cs","src/tests/mix.datasource.tests/GlobalTestSettings.cs","src/tests/mix.datasource.tests/Helpers/FakeDataSourceMigrationService.cs","src/tests/mix.datasource.tests/Helpers/TestServiceFactory.cs","src/tests/mix.datasource.tests/Services/DataSourceMigrationServiceTests.cs","src/tests/mix.datasource.tests/ViewModels/DataSourceTableDtoTests.cs","src/tests/mix.datasource.tests/mix.datasource.tests.csproj","src/tests/mix.gateway.tests/GlobalTestSettings.cs","src/tests/mix.gateway.tests/RouteCheckerTests.cs","src/tests/mix.gateway.tests/mix.gateway.tests.csproj","src/tests/mix.installation.tests/Controllers/InitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/MySqlInitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/SqlServerInitCmsControllerTests.cs","src/tests/mix.installation.tests/GlobalTestSettings.cs","src/tests/mix.installation.tests/Helpers/FakeAppSettingsService.cs","src/tests/mix.installation.tests/Helpers/FakeDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeMySqlDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeSqlServerDatabaseService.cs","src/tests/mix.installation.tests/Helpers/TestCredentials.cs","src/tests/mix.installation.tests/Services/InitCmsServiceTests.cs","src/tests/mix.installation.tests/mix.installation.tests.csproj","src/tests/mix.queue.tests/GlobalTestSettings.cs","src/tests/mix.queue.tests/QueueServiceCollectionExtensionTests.cs","src/tests/mix.queue.tests/mix.queue.tests.csproj"]}]},{"name":"tmp_schema","slug":"tmp-schema","files":["tmp_schema/schema/schema.json"]},{"name":"wiki","slug":"wiki","files":["wiki/admin-implementation-progress.md","wiki/admin-screens-inventory.md","wiki/admin-screens-inventory_blazor-app.md","wiki/ai-integration.md","wiki/api-reference.md","wiki/architecture.md","wiki/blazor-installation-app.md","wiki/configuration.md","wiki/database-support.md","wiki/developer-skills.md","wiki/getting-started.md","wiki/init-controller-redirect-middleware.md","wiki/json-configuration-folder-extension.md","wiki/lightrag-integration.md","wiki/mix-account.md","wiki/mix-datasource.md","wiki/mix-heart.md","wiki/module-development.md","wiki/multi-tenancy.md","wiki/signalr.md","wiki/testing.md"]}];
var META = {"fromCommit":"c3e1e6484ae850178f9a68c50ceca27af465c1e6","generatedAt":"2026-04-09T13:05:14.168Z","model":"deepseek-chat","moduleFiles":{"Root":["AGENTS.md","CLAUDE.md","README.md","docker-compose.yml","opencode.json","scalar.config.json"],"docs":["docs/superpowers/plans/2026-03-19-mix-account-refactor.md","docs/superpowers/plans/2026-03-20-linkerd-service-mesh-auth.md","docs/superpowers/plans/2026-03-23-mix-ai-module.md","docs/superpowers/plans/2026-03-23-queue-engine-config-validation.md","docs/superpowers/plans/2026-03-24-agent-per-request-provider-model.md","docs/superpowers/plans/2026-03-24-ai-config-step.md","docs/superpowers/plans/2026-03-25-mix-ai-service-gemini.md","docs/superpowers/plans/2026-03-25-mix-heart-cqrs-activation.md","docs/superpowers/plans/2026-03-25-queue-settings-service.md","docs/superpowers/plans/2026-03-27-lightrag-instructions-indexing.md","docs/superpowers/plans/2026-03-30-unified-provider-service.md","docs/superpowers/plans/2026-03-31-ai-embedding-config.md","docs/superpowers/plans/2026-04-01-datasource-mcp-tools.md","docs/superpowers/specs/2026-03-19-mix-account-refactor-design.md","docs/superpowers/specs/2026-03-20-linkerd-metrics-auth-design.md","docs/superpowers/specs/2026-03-23-mix-ai-design.md","docs/superpowers/specs/2026-03-24-ai-config-step-design.md","docs/superpowers/specs/2026-03-25-mix-ai-service-gemini-design.md","docs/superpowers/specs/2026-03-25-mix-heart-cqrs-design.md","docs/superpowers/specs/2026-03-25-queue-settings-service-design.md","docs/superpowers/specs/2026-03-30-unified-provider-service-design.md","docs/superpowers/specs/2026-03-31-ai-embedding-config-design.md"],"src":["src/Directory.Build.props","src/docker-compose.monitoring.yml","src/mixcore.sln","src/apps/mixcore/Controllers/AccountController.cs","src/apps/mixcore/Controllers/AdminController.cs","src/apps/mixcore/Controllers/AiChatController.cs","src/apps/mixcore/Controllers/HomeController.cs","src/apps/mixcore/Controllers/InitController.cs","src/apps/mixcore/Controllers/InstallationSetupController.cs","src/apps/mixcore/Dockerfile","src/apps/mixcore/DockerfileLinux","src/apps/mixcore/Domain/Handlers/PageContentHandlers.cs","src/apps/mixcore/Domain/Queries/GetPageBySeoName.cs","src/apps/mixcore/Domain/Services/PageContentService.cs","src/apps/mixcore/Domain/ViewModels/PageContentViewModel.cs","src/apps/mixcore/Gateway/AssemblyInfo.cs","src/apps/mixcore/Gateway/RouteChecker.cs","src/apps/mixcore/Models/ErrorViewModel.cs","src/apps/mixcore/Program.cs","src/apps/mixcore/Properties/PublishProfiles/FolderProfile.pubxml","src/apps/mixcore/Properties/launchSettings.json","src/apps/mixcore/Views/Account/Login.cshtml","src/apps/mixcore/Views/Admin/BlazorAdmin.cshtml","src/apps/mixcore/Views/Admin/Index.cshtml","src/apps/mixcore/Views/AiChat/Index.cshtml","src/apps/mixcore/Views/Home/App.cshtml","src/apps/mixcore/Views/Home/Index.cshtml","src/apps/mixcore/Views/Home/Page.cshtml","src/apps/mixcore/Views/Home/Post.cshtml","src/apps/mixcore/Views/Home/Privacy.cshtml","src/apps/mixcore/Views/Init/Index.cshtml","src/apps/mixcore/Views/Shared/Error.cshtml","src/apps/mixcore/Views/Shared/_AiChatLayout.cshtml","src/apps/mixcore/Views/Shared/_BlazorAdminLayout.cshtml","src/apps/mixcore/Views/Shared/_InitLayout.cshtml","src/apps/mixcore/Views/Shared/_Layout.cshtml","src/apps/mixcore/Views/Shared/_LoginLayout.cshtml","src/apps/mixcore/Views/Shared/_ValidationScriptsPartial.cshtml","src/apps/mixcore/Views/_ViewImports.cshtml","src/apps/mixcore/Views/_ViewStart.cshtml","src/apps/mixcore/appsettings.Development.json","src/apps/mixcore/appsettings.json","src/apps/mixcore/entrypoint.sh","src/apps/mixcore/mixcore.csproj","src/apps/mixcore/mixcore.csproj.Backup.tmp","src/apps/mixcore/wwwroot/css/admin.css","src/apps/mixcore/wwwroot/css/site.css","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ai-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/appsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/authsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/databases.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/endpoints.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ocelot.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/queue-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/templates/Readme.md","src/apps/mixcore/wwwroot/instructions/MIXCORE-CMS-OVERVIEW.md","src/apps/mixcore/wwwroot/instructions/START-HERE.md","src/apps/mixcore/wwwroot/instructions/content/modules.md","src/apps/mixcore/wwwroot/instructions/content/pages.md","src/apps/mixcore/wwwroot/instructions/content/posts.md","src/apps/mixcore/wwwroot/instructions/mixdb/README.md","src/apps/mixcore/wwwroot/instructions/mixdb/best-practices.md","src/apps/mixcore/wwwroot/instructions/mixdb/data-loading-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/database-creation-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/datasource-services-guide.md","src/apps/mixcore/wwwroot/instructions/reference/developer-guide.md","src/apps/mixcore/wwwroot/instructions/reference/mix-cms-reference.md","src/apps/mixcore/wwwroot/instructions/reference/reference-mcp-tools.md","src/apps/mixcore/wwwroot/instructions/templates/cshtml-razor-syntax-guidelines.md","src/apps/mixcore/wwwroot/instructions/templates/form-template.md","src/apps/mixcore/wwwroot/instructions/templates/master-template.md","src/apps/mixcore/wwwroot/instructions/templates/mixdb-template.md","src/apps/mixcore/wwwroot/instructions/templates/module-template.md","src/apps/mixcore/wwwroot/instructions/templates/page-template.md","src/apps/mixcore/wwwroot/instructions/templates/post-template.md","src/apps/mixcore/wwwroot/instructions/templates/widget-template.md","src/apps/mixcore/wwwroot/instructions/workflows/ai-content-editor-workflow.md","src/apps/mixcore/wwwroot/js/site.js","src/apps/mixcore/wwwroot/system-prompts/content-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/data-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/extract-tool-params.md","src/apps/mixcore/wwwroot/system-prompts/generate-column-value.md","src/apps/mixcore/wwwroot/system-prompts/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/generate-mixdb-record.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification-update-content.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/parse-schema-description.md","src/apps/mixcore/wwwroot/system-prompts/mcp/planning.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification-default-context.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification.md","src/apps/mixcore/wwwroot/system-prompts/module-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/planning-prompt.md","src/apps/mixcore/wwwroot/system-prompts/step-execution-prompt.md","src/apps/mixcore/wwwroot/system-prompts/tool-classification.md","src/mixcore.host/AppHost.cs","src/mixcore.host/Properties/launchSettings.json","src/mixcore.host/appsettings.Development.json","src/mixcore.host/appsettings.json","src/mixcore.host/mixcore.host.csproj","src/modules/account/mix.account/Controllers/MixAccountController.cs","src/modules/account/mix.account/Controllers/OAuthClientController.cs","src/modules/account/mix.account/Interfaces/IMixEdmService.cs","src/modules/account/mix.account/Program.cs","src/modules/account/mix.account/Properties/launchSettings.json","src/modules/account/mix.account/Services/DefaultEdmService.cs","src/modules/account/mix.account/Startup.cs","src/modules/account/mix.account/appsettings.Development.json","src/modules/account/mix.account/appsettings.json","src/modules/account/mix.account/mix.account.csproj","src/modules/account/mix.auth/Attributes/MixAuthorizeAttribute.cs","src/modules/account/mix.auth/Attributes/MixAuthorizeOptionalAttribute.cs","src/modules/account/mix.auth/Authorization/ClaimRequirement.cs","src/modules/account/mix.auth/Constants/MixClaims.cs","src/modules/account/mix.auth/Constants/MixRoles.cs","src/modules/account/mix.auth/Constants/OAuthConstants.cs","src/modules/account/mix.auth/DTOs/GrantPermissionsDto.cs","src/modules/account/mix.auth/DTOs/RenewTokenDto.cs","src/modules/account/mix.auth/Enums/AuthorizationGrantTypesEnum.cs","src/modules/account/mix.auth/Enums/MixExternalLoginProviders.cs","src/modules/account/mix.auth/Enums/MixRoleEnums.cs","src/modules/account/mix.auth/Enums/OAuthErrorType.cs","src/modules/account/mix.auth/Enums/TokenTypeEnum.cs","src/modules/account/mix.auth/Extensions/AuthServiceCollectionExtensions.cs","src/modules/account/mix.auth/Extensions/AuthenticationBuilderExtensions.cs","src/modules/account/mix.auth/Extensions/ServiceCollectionExtensions.cs","src/modules/account/mix.auth/Handlers/OAuthClientHandlers.cs","src/modules/account/mix.auth/Helpers/AuthExtensions.cs","src/modules/account/mix.auth/Helpers/JwtSecurityKeyHelper.cs","src/modules/account/mix.auth/Helpers/OAuth2ServerHelpers.cs","src/modules/account/mix.auth/Interfaces/IMessageSenders.cs","src/modules/account/mix.auth/Interfaces/IMixIdentityService.cs","src/modules/account/mix.auth/Interfaces/IOAuthClientService.cs","src/modules/account/mix.auth/Interfaces/IOAuthCodeStoreService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenRevocationService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenService.cs","src/modules/account/mix.auth/Models/ExternalLoginResultModel.cs","src/modules/account/mix.auth/Models/ExternalLoginViewModel.cs","src/modules/account/mix.auth/Models/ForgotPasswordRequestModel.cs","src/modules/account/mix.auth/Models/LoginRequestModel.cs","src/modules/account/mix.auth/Models/LoginResponseModel.cs","src/modules/account/mix.auth/Models/Manage/ManageViewModels.cs","src/modules/account/mix.auth/Models/OAuth/CheckOAuthClientResult.cs","src/modules/account/mix.auth/Models/OAuth/OAuthCode.cs","src/modules/account/mix.auth/Models/OAuth/OAuthRequest.cs","src/modules/account/mix.auth/Models/OAuth/OAuthServerOptions.cs","src/modules/account/mix.auth/Models/OAuth/Requests/OAuthRequests.cs","src/modules/account/mix.auth/Models/OAuth/Responses/OAuthResponses.cs","src/modules/account/mix.auth/Models/ParsedExternalAccessToken.cs","src/modules/account/mix.auth/Models/RegisterExternalBindingModel.cs","src/modules/account/mix.auth/Models/RegisterRequestModel.cs","src/modules/account/mix.auth/Models/ResetPasswordRequestModel.cs","src/modules/account/mix.auth/Models/RoleBOModel.cs","src/modules/account/mix.auth/Models/SearchAccountQueryModel.cs","src/modules/account/mix.auth/Models/TokenResponseModel.cs","src/modules/account/mix.auth/Models/UserRoleModel.cs","src/modules/account/mix.auth/Services/MessageSenders.cs","src/modules/account/mix.auth/Services/MixIdentityService.cs","src/modules/account/mix.auth/Services/MixPermissionService.cs","src/modules/account/mix.auth/Services/OAuthClientService.cs","src/modules/account/mix.auth/Services/OAuthCodeStoreService.cs","src/modules/account/mix.auth/Services/OAuthTokenRevocationService.cs","src/modules/account/mix.auth/Services/OAuthTokenService.cs","src/modules/account/mix.auth/Services/TenantIdentityServices.cs","src/modules/account/mix.auth/ViewModels/OAuthClientViewModel.cs","src/modules/account/mix.auth/mix.auth.csproj","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor.cs","src/modules/admin/mix.admin.ui/Components/AdminNavigationContext.cs","src/modules/admin/mix.admin.ui/Components/AiCompanionPanel.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor.js","src/modules/admin/mix.admin.ui/Components/AppEditorSection.razor","src/modules/admin/mix.admin.ui/Components/AppListSection.razor","src/modules/admin/mix.admin.ui/Components/AppearanceSection.razor","src/modules/admin/mix.admin.ui/Components/AuditLogSection.razor","src/modules/admin/mix.admin.ui/Components/AutomationSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DomainListSection.razor","src/modules/admin/mix.admin.ui/Components/DynamicDataSection.razor","src/modules/admin/mix.admin.ui/Components/FileManagerSection.razor","src/modules/admin/mix.admin.ui/Components/GoalsSection.razor","src/modules/admin/mix.admin.ui/Components/IntegrationSection.razor","src/modules/admin/mix.admin.ui/Components/IssuesSection.razor","src/modules/admin/mix.admin.ui/Components/KanbanSection.razor","src/modules/admin/mix.admin.ui/Components/LanguageSection.razor","src/modules/admin/mix.admin.ui/Components/LocalizationSection.razor","src/modules/admin/mix.admin.ui/Components/MediaLibrarySection.razor","src/modules/admin/mix.admin.ui/Components/MenuBuilderSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor.cs","src/modules/admin/mix.admin.ui/Components/OAuthClientSection.razor","src/modules/admin/mix.admin.ui/Components/PageEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PageListSection.razor","src/modules/admin/mix.admin.ui/Components/PermissionListSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor.cs","src/modules/admin/mix.admin.ui/Components/PostListSection.razor","src/modules/admin/mix.admin.ui/Components/PostListSection.razor.cs","src/modules/admin/mix.admin.ui/Components/ProfileSection.razor","src/modules/admin/mix.admin.ui/Components/QueueLogSection.razor","src/modules/admin/mix.admin.ui/Components/RoleManagerSection.razor","src/modules/admin/mix.admin.ui/Components/SchedulerSection.razor","src/modules/admin/mix.admin.ui/Components/SettingsSection.razor","src/modules/admin/mix.admin.ui/Components/TaxonomySection.razor","src/modules/admin/mix.admin.ui/Components/TenantEditorSection.razor","src/modules/admin/mix.admin.ui/Components/TenantListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeStoreSection.razor","src/modules/admin/mix.admin.ui/Components/UserEditorSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor.cs","src/modules/admin/mix.admin.ui/_Imports.razor","src/modules/admin/mix.admin.ui/mix.admin.ui.csproj","src/modules/ai/mix.ai.ui/Components/AiChatPage.razor","src/modules/ai/mix.ai.ui/Components/AiSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/ChatPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/McpSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/MessageItem.razor","src/modules/ai/mix.ai.ui/Components/Chat/ProviderModelPicker.razor","src/modules/ai/mix.ai.ui/Components/Preview/PreviewPanel.razor","src/modules/ai/mix.ai.ui/Models/AiSettingsModels.cs","src/modules/ai/mix.ai.ui/Models/ChatMessage.cs","src/modules/ai/mix.ai.ui/Models/ChatSession.cs","src/modules/ai/mix.ai.ui/Models/McpSettings.cs","src/modules/ai/mix.ai.ui/Services/AiChatService.cs","src/modules/ai/mix.ai.ui/Services/McpToolsService.cs","src/modules/ai/mix.ai.ui/_Imports.razor","src/modules/ai/mix.ai.ui/mix.ai.ui.csproj","src/modules/ai/mix.ai.ui/wwwroot/css/ai-chat.css","src/modules/ai/mix.ai/Agents/Base/AgentProcessResult.cs","src/modules/ai/mix.ai/Agents/Base/AgentRequest.cs","src/modules/ai/mix.ai/Agents/Base/BaseAgent.cs","src/modules/ai/mix.ai/Agents/Base/IAgent.cs","src/modules/ai/mix.ai/Agents/ChatAgent.cs","src/modules/ai/mix.ai/Agents/DatabaseAgent.cs","src/modules/ai/mix.ai/Agents/PlanningAgent.cs","src/modules/ai/mix.ai/Agents/RoutingAgent.cs","src/modules/ai/mix.ai/Agents/TaskAgent.cs","src/modules/ai/mix.ai/Background/LLMChatHostedService.cs","src/modules/ai/mix.ai/Background/RAGImportSubscriber.cs","src/modules/ai/mix.ai/Constants/AIHubMethods.cs","src/modules/ai/mix.ai/Constants/AIQueueTopics.cs","src/modules/ai/mix.ai/Constants/VectorDatabaseCollectionNames.cs","src/modules/ai/mix.ai/Controllers/AIChatController.cs","src/modules/ai/mix.ai/Controllers/AIGenerationController.cs","src/modules/ai/mix.ai/Controllers/RAGController.cs","src/modules/ai/mix.ai/Domain/Dtos/AskAIDto.cs","src/modules/ai/mix.ai/Domain/Dtos/GenerateValueDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchRequestDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchResponseDto.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIContentMessageViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIPlanViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AgentProcessResultViewModel.cs","src/modules/ai/mix.ai/Hubs/AIContentEditorHub.cs","src/modules/ai/mix.ai/Hubs/LLMHub.cs","src/modules/ai/mix.ai/Models/IntentCacheModels.cs","src/modules/ai/mix.ai/Models/TaskModels.cs","src/modules/ai/mix.ai/Program.cs","src/modules/ai/mix.ai/Properties/launchSettings.json","src/modules/ai/mix.ai/Services/AISettingsService.cs","src/modules/ai/mix.ai/Services/Agents/ConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IMcpClientService.cs","src/modules/ai/mix.ai/Services/Agents/ISystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/ITokenOptimizer.cs","src/modules/ai/mix.ai/Services/Agents/McpClientService.cs","src/modules/ai/mix.ai/Services/Agents/SystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/TokenOptimizer.cs","src/modules/ai/mix.ai/Services/ITaskStateService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIRequest.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIResponse.cs","src/modules/ai/mix.ai/Services/LLM/Generation/BaseGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GeminiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GenerationModality.cs","src/modules/ai/mix.ai/Services/LLM/Generation/IProviderService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/OpenAiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/LlmServiceFactory.cs","src/modules/ai/mix.ai/Services/MixAIService.cs","src/modules/ai/mix.ai/Services/RAG/ChunkingService.cs","src/modules/ai/mix.ai/Services/RAG/EmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/IEmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/ISemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/IVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/IndexingProgressReport.cs","src/modules/ai/mix.ai/Services/RAG/InstructionIndexingService.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagClient.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagInstructionSeeder.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagModels.cs","src/modules/ai/mix.ai/Services/RAG/PostgresVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/QdrantVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/RAGContext.cs","src/modules/ai/mix.ai/Services/RAG/RAGProcessor.cs","src/modules/ai/mix.ai/Services/RAG/SearchResult.cs","src/modules/ai/mix.ai/Services/RAG/SemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/VectorDbServiceFactory.cs","src/modules/ai/mix.ai/Services/RAG/VectorRecord.cs","src/modules/ai/mix.ai/Services/TaskService.cs","src/modules/ai/mix.ai/Services/TaskStateService.cs","src/modules/ai/mix.ai/Startup.cs","src/modules/ai/mix.ai/Tools/DatabaseQueryTool.cs","src/modules/ai/mix.ai/Tools/EchoTool.cs","src/modules/ai/mix.ai/Tools/FetchUrlTool.cs","src/modules/ai/mix.ai/Tools/IMixDbDataService.cs","src/modules/ai/mix.ai/Tools/MixDbDataTool.cs","src/modules/ai/mix.ai/Tools/MixDbSchemaTool.cs","src/modules/ai/mix.ai/Tools/MixModuleContentTool.cs","src/modules/ai/mix.ai/Tools/MixNavigationTool.cs","src/modules/ai/mix.ai/Tools/MixPageContentTool.cs","src/modules/ai/mix.ai/Tools/MixPageModuleTool.cs","src/modules/ai/mix.ai/Tools/MixPostContentTool.cs","src/modules/ai/mix.ai/Tools/MixTemplateTool.cs","src/modules/ai/mix.ai/Tools/NullMixDbDataService.cs","src/modules/ai/mix.ai/Tools/RAGSearchTool.cs","src/modules/ai/mix.ai/Tools/TextFileTool.cs","src/modules/ai/mix.ai/Tools/ToolDiscovery.cs","src/modules/ai/mix.ai/mix.ai.csproj","src/modules/cms/mix.content/Controllers/ModuleController.cs","src/modules/cms/mix.content/Controllers/PageController.cs","src/modules/cms/mix.content/Handlers/ModuleContentHandlers.cs","src/modules/cms/mix.content/Handlers/PageContentHandlers.cs","src/modules/cms/mix.content/Handlers/PostContentHandlers.cs","src/modules/cms/mix.content/Properties/launchSettings.json","src/modules/cms/mix.content/Services/CmsPageContentService.cs","src/modules/cms/mix.content/Services/ModuleContentService.cs","src/modules/cms/mix.content/Services/PostContentService.cs","src/modules/cms/mix.content/Startup.cs","src/modules/cms/mix.content/ViewModels/CmsPageContentViewModel.cs","src/modules/cms/mix.content/ViewModels/ModuleContentViewModel.cs","src/modules/cms/mix.content/ViewModels/PostContentViewModel.cs","src/modules/cms/mix.content/mix.content.csproj","src/modules/cms/mix.datasource/Controllers/DataSourceController.cs","src/modules/cms/mix.datasource/Controllers/DataSourceTableDataController.cs","src/modules/cms/mix.datasource/Cqrs/Commands/MigrateDatabaseCommand.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceDeleteCommandHandler.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceHandlers.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/MigrateDatabaseCommandHandler.cs","src/modules/cms/mix.datasource/Dtos/DataSourceTableDto.cs","src/modules/cms/mix.datasource/Dtos/SearchDataSourceTableRequestDto.cs","src/modules/cms/mix.datasource/Helpers/DataSourceDbHelper.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceMigrationService.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceTableDataService.cs","src/modules/cms/mix.datasource/Program.cs","src/modules/cms/mix.datasource/Properties/launchSettings.json","src/modules/cms/mix.datasource/Services/DataSourceMigrationService.cs","src/modules/cms/mix.datasource/Services/DataSourceTableDataService.cs","src/modules/cms/mix.datasource/Services/DatabaseCrudService.cs","src/modules/cms/mix.datasource/Services/MixDbDataService.cs","src/modules/cms/mix.datasource/Startup.cs","src/modules/cms/mix.datasource/ViewModels/DataSourceViewModel.cs","src/modules/cms/mix.datasource/mix.datasource.csproj","src/modules/installation/mix.installation.api/Controllers/InitCmsController.cs","src/modules/installation/mix.installation.api/Dockerfile","src/modules/installation/mix.installation.api/Program.cs","src/modules/installation/mix.installation.api/Properties/launchSettings.json","src/modules/installation/mix.installation.api/Startup.cs","src/modules/installation/mix.installation.api/appsettings.Development.json","src/modules/installation/mix.installation.api/appsettings.json","src/modules/installation/mix.installation.api/mix.installation.api.csproj","src/modules/installation/mix.installation.api/mix.installatoin.api.http","src/modules/installation/mix.installation.lib/Background/TemplateFileSubscriber.cs","src/modules/installation/mix.installation.lib/Commands/CreateDefaultTemplatesAndPagesCommand.cs","src/modules/installation/mix.installation.lib/DTOs/ImportOptionsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitCmsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitFullSiteDto.cs","src/modules/installation/mix.installation.lib/DTOs/SelectThemeDto.cs","src/modules/installation/mix.installation.lib/Handlers/CreateDefaultTemplatesAndPagesCommandHandler.cs","src/modules/installation/mix.installation.lib/Handlers/MixCultureHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixDbDatabaseHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixModuleHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageContentHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPostHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixTemplateHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixThemeHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/SiteInstallationHandlers.cs","src/modules/installation/mix.installation.lib/Import/ThemeImportContext.cs","src/modules/installation/mix.installation.lib/Interfaces/IInitCmsService.cs","src/modules/installation/mix.installation.lib/Interfaces/IMixThemeImportService.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Models/SiteDataModel.cs","src/modules/installation/mix.installation.lib/Services/AISettingsService.cs","src/modules/installation/mix.installation.lib/Services/InitCmsService.cs","src/modules/installation/mix.installation.lib/Services/MixDbDatabaseService.cs","src/modules/installation/mix.installation.lib/Services/MixThemeImportService.cs","src/modules/installation/mix.installation.lib/Services/ModuleService.cs","src/modules/installation/mix.installation.lib/Services/PageService.cs","src/modules/installation/mix.installation.lib/Services/PostService.cs","src/modules/installation/mix.installation.lib/Services/Processors/BaseThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/MixDbImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ModuleImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PageImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PostImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/TemplateImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ThemeImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/TemplateFileService.cs","src/modules/installation/mix.installation.lib/Services/TemplateService.cs","src/modules/installation/mix.installation.lib/Services/ThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Services/ThemeService.cs","src/modules/installation/mix.installation.lib/Startup.cs","src/modules/installation/mix.installation.lib/ViewModels/MixCultureViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixDbDatabaseViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixModuleViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageContentViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPostViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixTemplateViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixThemeViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/SiteInstallationViewModel.cs","src/modules/installation/mix.installation.lib/mix.installation.lib.csproj","src/modules/installation/mix.installation.ui/Components/InstallationWizard.razor","src/modules/installation/mix.installation.ui/Components/Steps/AdminAccountStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/AiConfigStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/CompletionStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/TenantSetupStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/ThemeImportCombinedStep.razor","src/modules/installation/mix.installation.ui/Models/WizardModels.cs","src/modules/installation/mix.installation.ui/_Imports.razor","src/modules/installation/mix.installation.ui/mix.installation.ui.csproj","src/modules/installation/mix.installation.ui/wwwroot/css/wizard.css","src/monitoring/grafana/provisioning/dashboards/dashboard.yml","src/monitoring/grafana/provisioning/dashboards/dotnet-aspnetcore.json","src/monitoring/grafana/provisioning/datasources/prometheus.yml","src/monitoring/prometheus/prometheus.yml","src/platform/common/mix-heart/README.md","src/platform/common/mix-heart/StyleCop.Cache","src/platform/common/mix-heart/git-reset-hard.bat","src/platform/common/mix-heart/nuget.config","src/platform/common/mix-heart/src/Constants/MixFileExtensions.cs","src/platform/common/mix-heart/src/Constants/MixHeartConstants.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/CacheInvalidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/UnitOfWorkBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/ValidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Commands/CreateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/DeleteCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveFieldsCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveManyCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/UpdateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/GenericViewModelHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/QueryHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/ICommand.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/IQuery.cs","src/platform/common/mix-heart/src/Cqrs/Notifications/MixEntityChangedNotification.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetByIdQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetListQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetPagingQuery.cs","src/platform/common/mix-heart/src/Cqrs/ServiceCollectionExtensions.Cqrs.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCache.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/MySqlCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/PostgresCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqlServerCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqliteCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Entity.cs","src/platform/common/mix-heart/src/Entities/EntityBase.cs","src/platform/common/mix-heart/src/Entities/IEntity.cs","src/platform/common/mix-heart/src/Entities/IHasPrimaryKey.cs","src/platform/common/mix-heart/src/Entities/SimpleEntityBase.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MSSQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MySQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/POSTGRES/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/SQLITE/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/Enums/ExpressionMethod.cs","src/platform/common/mix-heart/src/Enums/MixCacheMode.cs","src/platform/common/mix-heart/src/Enums/MixCacheStatus.cs","src/platform/common/mix-heart/src/Enums/MixContentStatus.cs","src/platform/common/mix-heart/src/Enums/MixDatabaseProvider.cs","src/platform/common/mix-heart/src/Enums/MixErrorStatus.cs","src/platform/common/mix-heart/src/Enums/SortDirection.cs","src/platform/common/mix-heart/src/Enums/ViewModelAction.cs","src/platform/common/mix-heart/src/Exceptions/EntityNotFoundException.cs","src/platform/common/mix-heart/src/Exceptions/MixException.cs","src/platform/common/mix-heart/src/Extensions/ExpressionExtensions.cs","src/platform/common/mix-heart/src/Extensions/IQueryableExtensions.cs","src/platform/common/mix-heart/src/Extensions/ModelBuilderExtensions.cs","src/platform/common/mix-heart/src/Extensions/ServiceExtension.cs","src/platform/common/mix-heart/src/Extensions/StringExtension.cs","src/platform/common/mix-heart/src/Factories/CacheEngineFactory.cs","src/platform/common/mix-heart/src/Helpers/AesEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/NewtonSoftHelper.cs","src/platform/common/mix-heart/src/Helpers/RSAEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/ReflectionHelper.cs","src/platform/common/mix-heart/src/Helpers/ViewModelHelper.cs","src/platform/common/mix-heart/src/Interfaces/IDitributedCacheClient.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/MySqlCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/PostgresCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/SqlServerCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/SqliteCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Model/EntityPropertyModel.cs","src/platform/common/mix-heart/src/Model/FileModel.cs","src/platform/common/mix-heart/src/Model/MixHeartConfigurationModel.cs","src/platform/common/mix-heart/src/Model/MixSortByColumn.cs","src/platform/common/mix-heart/src/Model/ModifiedEntityModel.cs","src/platform/common/mix-heart/src/Model/PagingModel.cs","src/platform/common/mix-heart/src/Model/PagingResponseModel.cs","src/platform/common/mix-heart/src/Model/RedisCacheConfigurationModel.cs","src/platform/common/mix-heart/src/Model/SaveResult.cs","src/platform/common/mix-heart/src/Repository/EntityRepository.cs","src/platform/common/mix-heart/src/Repository/IRepositoryBase.cs","src/platform/common/mix-heart/src/Repository/QueryRepository.cs","src/platform/common/mix-heart/src/Repository/Repository.cs","src/platform/common/mix-heart/src/Repository/RepositoryBase.cs","src/platform/common/mix-heart/src/Repository/ViewQueryRepository.cs","src/platform/common/mix-heart/src/ServiceCollectionExtensions.cs","src/platform/common/mix-heart/src/Services/AppSettingServiceBase.cs","src/platform/common/mix-heart/src/Services/ConfigurationServiceBase.cs","src/platform/common/mix-heart/src/Services/HybridCacheClient.cs","src/platform/common/mix-heart/src/Services/MixCacheService.cs","src/platform/common/mix-heart/src/Services/MixDatabaseCacheClient.cs","src/platform/common/mix-heart/src/Services/MixFileHelper.cs","src/platform/common/mix-heart/src/Services/MixStaticFileCacheClient.cs","src/platform/common/mix-heart/src/Services/RedisCacheClient.cs","src/platform/common/mix-heart/src/Services/SingletonService.cs","src/platform/common/mix-heart/src/UnitOfWork/GenericUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/IUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/UnitOfWorkInfo.cs","src/platform/common/mix-heart/src/ViewModel/IHeartViewModel.cs","src/platform/common/mix-heart/src/ViewModel/QueryViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/SimpleViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/ViewModelBase.cs","src/platform/common/mix-heart/src/mix.heart.csproj","src/platform/common/mix-heart/src/mix.heart.csproj.DotSettings","src/platform/common/mix-heart/src/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/platform/common/mix-heart/wiki/mix-heart.md","src/platform/common/mix.constant/Constants/BaseUrls.cs","src/platform/common/mix.constant/Constants/MixAppConfigFilePaths.cs","src/platform/common/mix.constant/Constants/MixAppSettingKeywords.cs","src/platform/common/mix.constant/Constants/MixAppSettingsSection.cs","src/platform/common/mix.constant/Constants/MixAuthConfigurations.cs","src/platform/common/mix.constant/Constants/MixConfigurationNames.cs","src/platform/common/mix.constant/Constants/MixConfigurations.cs","src/platform/common/mix.constant/Constants/MixConstants.cs","src/platform/common/mix.constant/Constants/MixCorsPolicies.cs","src/platform/common/mix.constant/Constants/MixDbCommandQueueActions.cs","src/platform/common/mix.constant/Constants/MixDbTableNames.cs","src/platform/common/mix.constant/Constants/MixDefaultThemes.cs","src/platform/common/mix.constant/Constants/MixDefaultValues.cs","src/platform/common/mix.constant/Constants/MixEncryptKeywords.cs","src/platform/common/mix.constant/Constants/MixEnvironments.cs","src/platform/common/mix.constant/Constants/MixFolders.cs","src/platform/common/mix.constant/Constants/MixModuleNames.cs","src/platform/common/mix.constant/Constants/MixQueryColumnName.cs","src/platform/common/mix.constant/Constants/MixQueueActions.cs","src/platform/common/mix.constant/Constants/MixQueueTopics.cs","src/platform/common/mix.constant/Constants/MixRepoDb.cs","src/platform/common/mix.constant/Constants/MixRequestQueryKeywords.cs","src/platform/common/mix.constant/Constants/MixTemplateFolders.cs","src/platform/common/mix.constant/Constants/MixThemePackageConstants.cs","src/platform/common/mix.constant/Enums/HttpRequestMethod.cs","src/platform/common/mix.constant/Enums/InitStep.cs","src/platform/common/mix.constant/Enums/MixAppConfigEnums.cs","src/platform/common/mix.constant/Enums/MixCalculateOperatorKind.cs","src/platform/common/mix.constant/Enums/MixConjunction.cs","src/platform/common/mix.constant/Enums/MixContentType.cs","src/platform/common/mix.constant/Enums/MixDataType.cs","src/platform/common/mix.constant/Enums/MixDatabaseNamingConvention.cs","src/platform/common/mix.constant/Enums/MixDbCommandQueueAction.cs","src/platform/common/mix.constant/Enums/MixDbDataAssociationType.cs","src/platform/common/mix.constant/Enums/MixDbTableParentType.cs","src/platform/common/mix.constant/Enums/MixDbTableRelationshipType.cs","src/platform/common/mix.constant/Enums/MixDbTableType.cs","src/platform/common/mix.constant/Enums/MixEncryptType.cs","src/platform/common/mix.constant/Enums/MixExpressionRule.cs","src/platform/common/mix.constant/Enums/MixLogicalOperatorKind.cs","src/platform/common/mix.constant/Enums/MixMenuItemType.cs","src/platform/common/mix.constant/Enums/MixModuleType.cs","src/platform/common/mix.constant/Enums/MixMvcViewMode.cs","src/platform/common/mix.constant/Enums/MixPageType.cs","src/platform/common/mix.constant/Enums/MixQueueMessageLogState.cs","src/platform/common/mix.constant/Enums/MixQueueProvider.cs","src/platform/common/mix.constant/Enums/MixResponseKey.cs","src/platform/common/mix.constant/Enums/MixResponseStatus.cs","src/platform/common/mix.constant/Enums/MixRestAction.cs","src/platform/common/mix.constant/Enums/MixRestStatus.cs","src/platform/common/mix.constant/Enums/MixStorageProvider.cs","src/platform/common/mix.constant/Enums/MixStructureType.cs","src/platform/common/mix.constant/Enums/MixTemplateFolderType.cs","src/platform/common/mix.constant/Enums/MixUrlAliasType.cs","src/platform/common/mix.constant/Enums/MixUserStatus.cs","src/platform/common/mix.constant/mix.constant.csproj","src/platform/common/mix.shared/Base/ViewModel/TenantDataViewModelBase.cs","src/platform/common/mix.shared/Dtos/AlterColumnDto.cs","src/platform/common/mix.shared/Dtos/FilterContentRequestDto.cs","src/platform/common/mix.shared/Dtos/GetIdsDto.cs","src/platform/common/mix.shared/Dtos/MixDbCollumnDto.cs","src/platform/common/mix.shared/Dtos/MixQueryField.cs","src/platform/common/mix.shared/Dtos/SearchMixDbRequestDto.cs","src/platform/common/mix.shared/Dtos/SearchQueryField.cs","src/platform/common/mix.shared/Dtos/SearchRequestDto.cs","src/platform/common/mix.shared/Enums/ApplicationType.cs","src/platform/common/mix.shared/Extensions/ConfigurationBuilderExtensions.cs","src/platform/common/mix.shared/Extensions/ConfigurationExtension.cs","src/platform/common/mix.shared/Extensions/CorsExtensions.cs","src/platform/common/mix.shared/Extensions/JObjectExtensions.cs","src/platform/common/mix.shared/Extensions/MiddlewareExtensions.cs","src/platform/common/mix.shared/Extensions/ServiceCollectionExtensions.cs","src/platform/common/mix.shared/Extensions/SessonExtensions.cs","src/platform/common/mix.shared/Extensions/SwaggerExtensions.cs","src/platform/common/mix.shared/Helpers/MixAssemblyFinder.cs","src/platform/common/mix.shared/Helpers/MixCmsHelper.cs","src/platform/common/mix.shared/Helpers/MixHelper.cs","src/platform/common/mix.shared/Helpers/SEOHelper.cs","src/platform/common/mix.shared/Interfaces/IGlobalConfigurations.cs","src/platform/common/mix.shared/Interfaces/IStartupService.cs","src/platform/common/mix.shared/Middleware/InitRedirectMiddleware.cs","src/platform/common/mix.shared/MixAssemblyFinder.cs","src/platform/common/mix.shared/Models/ApiResponseModel.cs","src/platform/common/mix.shared/Models/ColumnConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AIConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AgentModel.cs","src/platform/common/mix.shared/Models/Configurations/AppSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/DatabaseConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/EndpointConfigurationsModel.cs","src/platform/common/mix.shared/Models/Configurations/GlobalSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/GoogleSettingModel.cs","src/platform/common/mix.shared/Models/Configurations/LLMCredentialModels.cs","src/platform/common/mix.shared/Models/Configurations/LogConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixAuthenticationConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixRateLimitConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/OcelotConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/PortalConfigurationModel.cs","src/platform/common/mix.shared/Models/ConnectionStrings.cs","src/platform/common/mix.shared/Models/DataRelationshipModel.cs","src/platform/common/mix.shared/Models/HttpRequestModel.cs","src/platform/common/mix.shared/Models/MixCultureModel.cs","src/platform/common/mix.shared/Models/MixDbAuditLogModel.cs","src/platform/common/mix.shared/Models/PagingRequestModel.cs","src/platform/common/mix.shared/Models/SearchMixDbRequestModel.cs","src/platform/common/mix.shared/Models/SmtpConfiguration.cs","src/platform/common/mix.shared/Services/HttpService.cs","src/platform/common/mix.shared/Services/JsonConfigurationServiceBase.cs","src/platform/common/mix.shared/Services/JsonConfigurationsServiceBase.cs","src/platform/common/mix.shared/mix.shared.csproj","src/platform/common/mix.ui.shared/Catalog/AiProviderCatalog.cs","src/platform/common/mix.ui.shared/Components/AI/LlmCredentialsEditor.razor","src/platform/common/mix.ui.shared/Models/AiCredentialEntry.cs","src/platform/common/mix.ui.shared/_Imports.razor","src/platform/common/mix.ui.shared/mix.ui.shared.csproj","src/platform/common/mix.ui.shared/wwwroot/css/llm-editor.css","src/platform/common/mixcore.aspire.service/ApiKey/ApiKeyAuthenticationHandler.cs","src/platform/common/mixcore.aspire.service/Extensions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdForwardedHeadersStartupFilter.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdOptions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdShutdownService.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountOptions.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenCache.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandler.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerFilter.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerOptions.cs","src/platform/common/mixcore.aspire.service/mixcore.aspire.service.csproj","src/platform/communication/mix.mqtt.lib/Controllers/MqttController.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/Logger_Samples.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/PackageInspection_Samples.cs","src/platform/communication/mix.mqtt.lib/Extensions/StartupExtensions.cs","src/platform/communication/mix.mqtt.lib/Helpers/CertificateHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/MqttHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/ObjectExtensions.cs","src/platform/communication/mix.mqtt.lib/Models/AppSettingsProvider.cs","src/platform/communication/mix.mqtt.lib/Models/BrokerHostSettings.cs","src/platform/communication/mix.mqtt.lib/Models/ClientSettings.cs","src/platform/communication/mix.mqtt.lib/Models/MQTTSetting.cs","src/platform/communication/mix.mqtt.lib/RpcClient/RpcClient_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_ASP_NET_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Diagnostics_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Intercepting_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Retained_Messages_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Simple_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_TLS_Samples.cs","src/platform/communication/mix.mqtt.lib/Service/MqttServerHostedService.cs","src/platform/communication/mix.mqtt.lib/mix.mqtt.lib.csproj","src/platform/communication/mix.notification/Interfaces/IMixEdmService.cs","src/platform/communication/mix.notification/Services/MixEdmService.cs","src/platform/communication/mix.notification/mix.notification.csproj","src/platform/communication/mix.queue/Attributes/GeneratePublisherAttribute.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/GrpcStreamingService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqGrpcService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqStartupService.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/Readme.md","src/platform/communication/mix.queue/Engines/Mqtt/MqttPublisher.cs","src/platform/communication/mix.queue/Engines/Mqtt/MqttSubscriber.cs","src/platform/communication/mix.queue/Engines/PublisherBase.cs","src/platform/communication/mix.queue/Engines/QueueEngineFactory.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQPublisher.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQSubscriber.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitModelPooledObjectPolicy.cs","src/platform/communication/mix.queue/Engines/SubscriberBase.cs","src/platform/communication/mix.queue/Extensions/QueueServiceCollectionExtension.cs","src/platform/communication/mix.queue/Interfaces/IMemoryQueueService.cs","src/platform/communication/mix.queue/Interfaces/IQueuePublisher.cs","src/platform/communication/mix.queue/Interfaces/IQueueSubscriber.cs","src/platform/communication/mix.queue/Models/GrpcChannelModel.cs","src/platform/communication/mix.queue/Models/MessageQueueModel.cs","src/platform/communication/mix.queue/Models/MessageQueueSettings.cs","src/platform/communication/mix.queue/Models/MixQueueMessages.cs","src/platform/communication/mix.queue/Models/MixSubscribtionModel.cs","src/platform/communication/mix.queue/Models/MixTopicModel.cs","src/platform/communication/mix.queue/Models/QueueSetting/AzureQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/GoogleQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/IQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/KafkaQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/MixQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/RabitMqQueueSetting.cs","src/platform/communication/mix.queue/Protos/mixmq.proto","src/platform/communication/mix.queue/Readme.md","src/platform/communication/mix.queue/Services/MemoryQueueService.cs","src/platform/communication/mix.queue/Services/MessageQueueSettingsService.cs","src/platform/communication/mix.queue/mix.queue.csproj","src/platform/communication/mix.signalr/Constants/HubEndpoints.cs","src/platform/communication/mix.signalr/Constants/HubMethods.cs","src/platform/communication/mix.signalr/Enums/MessageAction.cs","src/platform/communication/mix.signalr/Enums/MessageType.cs","src/platform/communication/mix.signalr/HubClients/BaseHubClientService.cs","src/platform/communication/mix.signalr/HubClients/PortalHubClientService.cs","src/platform/communication/mix.signalr/Hubs/BaseSignalrHub.cs","src/platform/communication/mix.signalr/Hubs/PortalHub.cs","src/platform/communication/mix.signalr/Interfaces/IHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/ILogStreamHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/IMixDbCommandHubClientService.cs","src/platform/communication/mix.signalr/Models/HubUserModel.cs","src/platform/communication/mix.signalr/Models/SignalRMessageModel.cs","src/platform/communication/mix.signalr/mix.signalr.csproj","src/platform/mix.database/Base/AccountEntityBaseConfiguration.cs","src/platform/mix.database/Base/BaseDbContext.cs","src/platform/mix.database/Base/Cms/AssociationBaseConfiguration.cs","src/platform/mix.database/Base/Cms/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/Base/IDatabaseConstants.cs","src/platform/mix.database/Base/Service/TenantServiceBase.cs","src/platform/mix.database/Base/_CassandraDatabaseConstants.cs","src/platform/mix.database/Base/_MySqlDatabaseConstants.cs","src/platform/mix.database/Base/_PostgresSqlDatabaseConstants.cs","src/platform/mix.database/Base/_SqlServerDatabaseConstants.cs","src/platform/mix.database/Base/_SqliteDatabaseConstants.cs","src/platform/mix.database/Constants/MixDbDatabaseNames.cs","src/platform/mix.database/DesignTimeFactories/DesignTimeConnectionStrings.cs","src/platform/mix.database/DesignTimeFactories/MixCmsContextDesignTimeFactories.cs","src/platform/mix.database/Entities/AI/AIDatabaseNames.cs","src/platform/mix.database/Entities/AI/AIDbContext.cs","src/platform/mix.database/Entities/AI/AIPlan.cs","src/platform/mix.database/Entities/AI/AIPlanEnums.cs","src/platform/mix.database/Entities/AI/AIPlanStep.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanConfiguration.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanStepConfiguration.cs","src/platform/mix.database/Entities/Account/AspNetRoleClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserLogins.cs","src/platform/mix.database/Entities/Account/AspNetUserRoles.cs","src/platform/mix.database/Entities/Account/AspNetUserTokens.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetRoleClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserLoginsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUserTenantConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUsersConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthClientConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthTokenConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/RefreshTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/SysMixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Account/MixPermission.cs","src/platform/mix.database/Entities/Account/MixRole.cs","src/platform/mix.database/Entities/Account/MixUser.cs","src/platform/mix.database/Entities/Account/MixUserTenant.cs","src/platform/mix.database/Entities/Account/OAuthClient.cs","src/platform/mix.database/Entities/Account/OAuthToken.cs","src/platform/mix.database/Entities/Account/RefreshTokens.cs","src/platform/mix.database/Entities/Account/SysMixDbDataAssociation.cs","src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs","src/platform/mix.database/Entities/Account/_MySqlAccountContext.cs","src/platform/mix.database/Entities/Account/_PostgresSQLAccountContext.cs","src/platform/mix.database/Entities/Account/_SqlServerAccountContext.cs","src/platform/mix.database/Entities/Account/_SqliteAccountContext.cs","src/platform/mix.database/Entities/AuditLog/AuditLog.cs","src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs","src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs","src/platform/mix.database/Entities/Base/AssociationBase.cs","src/platform/mix.database/Entities/Base/ExtraColumnMultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualUniqueNameContentBase.cs","src/platform/mix.database/Entities/Base/TenantEntityBase.cs","src/platform/mix.database/Entities/Base/TenantEntityUniqueNameBase.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixApplicationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixContributorConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixCultureConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbColumnConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDatabaseConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableRelationshipConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDiscussionConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDomainConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixMediaConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleDataConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModulePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPagePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixTenantConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixThemeConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixUrlAliasConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixViewTemplateConfiguration.cs","src/platform/mix.database/Entities/Cms/MixApplication.cs","src/platform/mix.database/Entities/Cms/MixConfiguration.cs","src/platform/mix.database/Entities/Cms/MixConfigurationContent.cs","src/platform/mix.database/Entities/Cms/MixContributor.cs","src/platform/mix.database/Entities/Cms/MixCulture.cs","src/platform/mix.database/Entities/Cms/MixDbColumn.cs","src/platform/mix.database/Entities/Cms/MixDbDataAssociation.cs","src/platform/mix.database/Entities/Cms/MixDbDatabase.cs","src/platform/mix.database/Entities/Cms/MixDbTable.cs","src/platform/mix.database/Entities/Cms/MixDbTableRelationship.cs","src/platform/mix.database/Entities/Cms/MixDiscussion.cs","src/platform/mix.database/Entities/Cms/MixDomain.cs","src/platform/mix.database/Entities/Cms/MixLanguage.cs","src/platform/mix.database/Entities/Cms/MixLanguageContent.cs","src/platform/mix.database/Entities/Cms/MixMedia.cs","src/platform/mix.database/Entities/Cms/MixModule.cs","src/platform/mix.database/Entities/Cms/MixModuleContent.cs","src/platform/mix.database/Entities/Cms/MixModuleData.cs","src/platform/mix.database/Entities/Cms/MixModulePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPage.cs","src/platform/mix.database/Entities/Cms/MixPageContent.cs","src/platform/mix.database/Entities/Cms/MixPageModuleAssociation.cs","src/platform/mix.database/Entities/Cms/MixPagePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPost.cs","src/platform/mix.database/Entities/Cms/MixPostContent.cs","src/platform/mix.database/Entities/Cms/MixPostPostAssociation.cs","src/platform/mix.database/Entities/Cms/MixTemplate.cs","src/platform/mix.database/Entities/Cms/MixTenant.cs","src/platform/mix.database/Entities/Cms/MixTheme.cs","src/platform/mix.database/Entities/Cms/MixUrlAlias.cs","src/platform/mix.database/Entities/Cms/_MixCmsContext.cs","src/platform/mix.database/Entities/Cms/_MySqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_PostgresqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqlServerMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqliteMixCmsContext.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAccess.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAudit.cs","src/platform/mix.database/Entities/Compliance/ConsentEvent.cs","src/platform/mix.database/Entities/Compliance/DataFieldMetadata.cs","src/platform/mix.database/Entities/Compliance/DataProtectionImpactAssessment.cs","src/platform/mix.database/Entities/Compliance/DpiaMitigation.cs","src/platform/mix.database/Entities/Compliance/DpiaRisk.cs","src/platform/mix.database/Entities/Compliance/DsrRequest.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAccessConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAuditConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/ConsentEventConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataFieldMetadataConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataProtectionImpactAssessmentConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaMitigationConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaRiskConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DsrRequestConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/PurposeConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionExecutionConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionPolicyConfiguration.cs","src/platform/mix.database/Entities/Compliance/Purpose.cs","src/platform/mix.database/Entities/Compliance/RetentionExecution.cs","src/platform/mix.database/Entities/Compliance/RetentionPolicy.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataContentAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbEventSubscriberConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixMenuItemConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixNavigationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionEndpointConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PortalMenuConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserDataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserPermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/MixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/MixDbEventSubscriber.cs","src/platform/mix.database/Entities/MixDb/MixMenuItem.cs","src/platform/mix.database/Entities/MixDb/MixMetadata.cs","src/platform/mix.database/Entities/MixDb/MixMetadataContentAssociation.cs","src/platform/mix.database/Entities/MixDb/MixNavigation.cs","src/platform/mix.database/Entities/MixDb/MixPermission.cs","src/platform/mix.database/Entities/MixDb/MixPermissionEndpoint.cs","src/platform/mix.database/Entities/MixDb/MixPortalMenu.cs","src/platform/mix.database/Entities/MixDb/MixUserData.cs","src/platform/mix.database/Entities/MixDb/MixUserPermission.cs","src/platform/mix.database/Entities/MixDb/MySqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/PostgresSqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqlServerMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqliteMixDbDbContext.cs","src/platform/mix.database/Entities/Quartz/QrtzBlobTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzCalendar.cs","src/platform/mix.database/Entities/Quartz/QrtzCronTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzFiredTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzJobDetail.cs","src/platform/mix.database/Entities/Quartz/QrtzLock.cs","src/platform/mix.database/Entities/Quartz/QrtzPausedTriggerGrp.cs","src/platform/mix.database/Entities/Quartz/QrtzSchedulerState.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpleTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpropTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzTrigger.cs","src/platform/mix.database/Entities/Quartz/_MySqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_PostgresSqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_QuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SQliteQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SqlServerQuartzDbContext.cs","src/platform/mix.database/Entities/Queue/EntityConfigurations/MixQueueMessageConfiguration.cs","src/platform/mix.database/Entities/Queue/MixQueueDbContext.cs","src/platform/mix.database/Entities/Queue/MixQueueMessageLog.cs","src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs","src/platform/mix.database/Entities/QueueLog/QueueLog.cs","src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs","src/platform/mix.database/Entities/Settings/GlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/MixGlobalSetting.cs","src/platform/mix.database/Entities/Settings/MySqlGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/PostgresGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqlServerGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqliteGlobalSettingContext.cs","src/platform/mix.database/EntityConfigurations/Base/AssociationBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/SimpleEntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Converters/EncryptedStringConverter.cs","src/platform/mix.database/EntityConfigurations/Converters/StringToJArrayConverter.cs","src/platform/mix.database/EntityConfigurations/MYSQL/Quartz/MySqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/POSTGRES/Quartz/PostgresSqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/PropertyBuilderExtensions.cs","src/platform/mix.database/EntityConfigurations/SQLITE/Quartz/SQLiteQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/SQLSERVER/Quartz/SqlServerQuartzConfigurations.cs","src/platform/mix.database/Extensions/EntityTypeBuilderExtensions.cs","src/platform/mix.database/Extensions/ModelBuilderExtensions.cs","src/platform/mix.database/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.Designer.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.cs","src/platform/mix.database/Migrations/Account/MySql/MySqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.cs","src/platform/mix.database/Migrations/Account/Postgres/PostgresSqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.Designer.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.cs","src/platform/mix.database/Migrations/Account/SqlServer/SqlServerAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.cs","src/platform/mix.database/Migrations/Account/Sqlite/SqliteAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/MySql/MySqlAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/PostgresAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/SqlServerAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/SqliteAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.Designer.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.cs","src/platform/mix.database/Migrations/Cms/MySql/MySqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.cs","src/platform/mix.database/Migrations/Cms/Postgres/PostgresqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.cs","src/platform/mix.database/Migrations/Cms/SqlServer/SqlServerMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.Designer.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.cs","src/platform/mix.database/Migrations/MixQueueDb/MixQueueDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.cs","src/platform/mix.database/Migrations/Quartz/MySql/MySQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.cs","src/platform/mix.database/Migrations/Quartz/Postgres/PostgresSQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/SQLServerQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/SQLiteQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.cs","src/platform/mix.database/Migrations/QueueLog/MySql/MySqlQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/PostgresQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/SqlServerQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/SqlITEQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Extensions/GlobalSettingMigrationExtensions.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.cs","src/platform/mix.database/Migrations/Settings/MySql/MySqlGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.cs","src/platform/mix.database/Migrations/Settings/Postgres/PostgresGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.cs","src/platform/mix.database/Migrations/Settings/SqlServer/SqlServerGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.cs","src/platform/mix.database/Migrations/Settings/Sqlite/SqliteGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Models/MixTenantSystemModel.cs","src/platform/mix.database/Properties/launchSettings.json","src/platform/mix.database/Readme.md","src/platform/mix.database/Services/AppSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/AuthConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/DatabaseService.cs","src/platform/mix.database/Services/MixGlobalSettings/EnvironmentService.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingServiceBase.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/IPSecurityConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixEndpointService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixHeartConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/PortalConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/SmtpConfigService.cs","src/platform/mix.database/TokenTypeEnum.cs","src/platform/mix.database/mix.database.csproj","src/platform/mix.database/wwwroot/default-mixcontent/setting-files/databases.json","src/platform/mix.lib/Controllers/CrudControllerBase.cs","src/platform/mix.lib/Controllers/ReadOnlyControllerBase.cs","src/platform/mix.lib/Controllers/TenantControllerBase.cs","src/platform/mix.lib/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.lib/Helpers/DataTypeHelper.cs","src/platform/mix.lib/Interfaces/ICrudService.cs","src/platform/mix.lib/Interfaces/ITenantService.cs","src/platform/mix.lib/Models/SearchQuery.cs","src/platform/mix.lib/Notifications/QueueEventNotificationHandler.cs","src/platform/mix.lib/Notifications/SignalRNotificationHandler.cs","src/platform/mix.lib/Services/CrudService.cs","src/platform/mix.lib/Services/TenantService.cs","src/platform/mix.lib/Services/TenantServiceBase.cs","src/platform/mix.lib/mix.lib.csproj","src/tests/mix.account.tests/Controllers/MixAccountControllerTests.cs","src/tests/mix.account.tests/GlobalTestSettings.cs","src/tests/mix.account.tests/Helpers/CacheServiceFactory.cs","src/tests/mix.account.tests/Helpers/FakeAccountDatabaseService.cs","src/tests/mix.account.tests/Helpers/FakeAuthConfigService.cs","src/tests/mix.account.tests/mix.account.tests.csproj","src/tests/mix.admin.ui.tests/PostEditorTests.cs","src/tests/mix.admin.ui.tests/mix.admin.ui.tests.csproj","src/tests/mix.ai.tests/Agents/AgentProviderResolutionTests.cs","src/tests/mix.ai.tests/Agents/ConversationManagerTests.cs","src/tests/mix.ai.tests/Agents/FakeLlmServiceFactory.cs","src/tests/mix.ai.tests/Agents/RoutingAgentTests.cs","src/tests/mix.ai.tests/Agents/TokenOptimizerTests.cs","src/tests/mix.ai.tests/Controllers/AIChatControllerTests.cs","src/tests/mix.ai.tests/Controllers/RAGControllerTests.cs","src/tests/mix.ai.tests/GlobalTestSettings.cs","src/tests/mix.ai.tests/Services/ChunkingServiceTests.cs","src/tests/mix.ai.tests/Services/EmbeddingServiceTests.cs","src/tests/mix.ai.tests/Services/LlmServiceFactoryTests.cs","src/tests/mix.ai.tests/Services/MixAIServiceTests.cs","src/tests/mix.ai.tests/Services/PostgresVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/QdrantVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagClientTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagInstructionSeederTests.cs","src/tests/mix.ai.tests/Services/SemanticSearchServiceTests.cs","src/tests/mix.ai.tests/mix.ai.tests.csproj","src/tests/mix.aspire.service.tests/Extensions/AddServiceAccountAuthTests.cs","src/tests/mix.aspire.service.tests/Extensions/MapSecureDefaultEndpointsTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdForwardedHeadersStartupFilterTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdShutdownServiceTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenCacheTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerFilterTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerTests.cs","src/tests/mix.aspire.service.tests/mix.aspire.service.tests.csproj","src/tests/mix.cqrs.tests/AssemblyInfo.cs","src/tests/mix.cqrs.tests/Behaviors/BehaviorOrderIntegrationTests.cs","src/tests/mix.cqrs.tests/Behaviors/CacheInvalidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/UnitOfWorkBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/ValidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Fakes/FakeCacheService.cs","src/tests/mix.cqrs.tests/Fakes/FakeMediator.cs","src/tests/mix.cqrs.tests/Fakes/FakeUow.cs","src/tests/mix.cqrs.tests/Fakes/TestDbContext.cs","src/tests/mix.cqrs.tests/Fakes/TestEntity.cs","src/tests/mix.cqrs.tests/Fakes/TestViewModel.cs","src/tests/mix.cqrs.tests/Notifications/QueueEventNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/Notifications/SignalRNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/mix.cqrs.tests.csproj","src/tests/mix.database.migrations.tests/GlobalTestSettings.cs","src/tests/mix.database.migrations.tests/Helpers/TestConnections.cs","src/tests/mix.database.migrations.tests/Helpers/TestDatabaseServiceFactory.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/appsettings.example.json","src/tests/mix.database.migrations.tests/mix.database.migrations.tests.csproj","src/tests/mix.datasource.tests/Controllers/DataSourceControllerTests.cs","src/tests/mix.datasource.tests/GlobalTestSettings.cs","src/tests/mix.datasource.tests/Helpers/FakeDataSourceMigrationService.cs","src/tests/mix.datasource.tests/Helpers/TestServiceFactory.cs","src/tests/mix.datasource.tests/Services/DataSourceMigrationServiceTests.cs","src/tests/mix.datasource.tests/ViewModels/DataSourceTableDtoTests.cs","src/tests/mix.datasource.tests/mix.datasource.tests.csproj","src/tests/mix.gateway.tests/GlobalTestSettings.cs","src/tests/mix.gateway.tests/RouteCheckerTests.cs","src/tests/mix.gateway.tests/mix.gateway.tests.csproj","src/tests/mix.installation.tests/Controllers/InitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/MySqlInitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/SqlServerInitCmsControllerTests.cs","src/tests/mix.installation.tests/GlobalTestSettings.cs","src/tests/mix.installation.tests/Helpers/FakeAppSettingsService.cs","src/tests/mix.installation.tests/Helpers/FakeDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeMySqlDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeSqlServerDatabaseService.cs","src/tests/mix.installation.tests/Helpers/TestCredentials.cs","src/tests/mix.installation.tests/Services/InitCmsServiceTests.cs","src/tests/mix.installation.tests/mix.installation.tests.csproj","src/tests/mix.queue.tests/GlobalTestSettings.cs","src/tests/mix.queue.tests/QueueServiceCollectionExtensionTests.cs","src/tests/mix.queue.tests/mix.queue.tests.csproj"],"src — src":["src/Directory.Build.props","src/docker-compose.monitoring.yml","src/mixcore.sln"],"src — apps":["src/apps/mixcore/Controllers/AccountController.cs","src/apps/mixcore/Controllers/AdminController.cs","src/apps/mixcore/Controllers/AiChatController.cs","src/apps/mixcore/Controllers/HomeController.cs","src/apps/mixcore/Controllers/InitController.cs","src/apps/mixcore/Controllers/InstallationSetupController.cs","src/apps/mixcore/Dockerfile","src/apps/mixcore/DockerfileLinux","src/apps/mixcore/Domain/Handlers/PageContentHandlers.cs","src/apps/mixcore/Domain/Queries/GetPageBySeoName.cs","src/apps/mixcore/Domain/Services/PageContentService.cs","src/apps/mixcore/Domain/ViewModels/PageContentViewModel.cs","src/apps/mixcore/Gateway/AssemblyInfo.cs","src/apps/mixcore/Gateway/RouteChecker.cs","src/apps/mixcore/Models/ErrorViewModel.cs","src/apps/mixcore/Program.cs","src/apps/mixcore/Properties/PublishProfiles/FolderProfile.pubxml","src/apps/mixcore/Properties/launchSettings.json","src/apps/mixcore/Views/Account/Login.cshtml","src/apps/mixcore/Views/Admin/BlazorAdmin.cshtml","src/apps/mixcore/Views/Admin/Index.cshtml","src/apps/mixcore/Views/AiChat/Index.cshtml","src/apps/mixcore/Views/Home/App.cshtml","src/apps/mixcore/Views/Home/Index.cshtml","src/apps/mixcore/Views/Home/Page.cshtml","src/apps/mixcore/Views/Home/Post.cshtml","src/apps/mixcore/Views/Home/Privacy.cshtml","src/apps/mixcore/Views/Init/Index.cshtml","src/apps/mixcore/Views/Shared/Error.cshtml","src/apps/mixcore/Views/Shared/_AiChatLayout.cshtml","src/apps/mixcore/Views/Shared/_BlazorAdminLayout.cshtml","src/apps/mixcore/Views/Shared/_InitLayout.cshtml","src/apps/mixcore/Views/Shared/_Layout.cshtml","src/apps/mixcore/Views/Shared/_LoginLayout.cshtml","src/apps/mixcore/Views/Shared/_ValidationScriptsPartial.cshtml","src/apps/mixcore/Views/_ViewImports.cshtml","src/apps/mixcore/Views/_ViewStart.cshtml","src/apps/mixcore/appsettings.Development.json","src/apps/mixcore/appsettings.json","src/apps/mixcore/entrypoint.sh","src/apps/mixcore/mixcore.csproj","src/apps/mixcore/mixcore.csproj.Backup.tmp","src/apps/mixcore/wwwroot/css/admin.css","src/apps/mixcore/wwwroot/css/site.css","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ai-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/appsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/authsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/databases.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/endpoints.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ocelot.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/queue-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/templates/Readme.md","src/apps/mixcore/wwwroot/instructions/MIXCORE-CMS-OVERVIEW.md","src/apps/mixcore/wwwroot/instructions/START-HERE.md","src/apps/mixcore/wwwroot/instructions/content/modules.md","src/apps/mixcore/wwwroot/instructions/content/pages.md","src/apps/mixcore/wwwroot/instructions/content/posts.md","src/apps/mixcore/wwwroot/instructions/mixdb/README.md","src/apps/mixcore/wwwroot/instructions/mixdb/best-practices.md","src/apps/mixcore/wwwroot/instructions/mixdb/data-loading-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/database-creation-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/datasource-services-guide.md","src/apps/mixcore/wwwroot/instructions/reference/developer-guide.md","src/apps/mixcore/wwwroot/instructions/reference/mix-cms-reference.md","src/apps/mixcore/wwwroot/instructions/reference/reference-mcp-tools.md","src/apps/mixcore/wwwroot/instructions/templates/cshtml-razor-syntax-guidelines.md","src/apps/mixcore/wwwroot/instructions/templates/form-template.md","src/apps/mixcore/wwwroot/instructions/templates/master-template.md","src/apps/mixcore/wwwroot/instructions/templates/mixdb-template.md","src/apps/mixcore/wwwroot/instructions/templates/module-template.md","src/apps/mixcore/wwwroot/instructions/templates/page-template.md","src/apps/mixcore/wwwroot/instructions/templates/post-template.md","src/apps/mixcore/wwwroot/instructions/templates/widget-template.md","src/apps/mixcore/wwwroot/instructions/workflows/ai-content-editor-workflow.md","src/apps/mixcore/wwwroot/js/site.js","src/apps/mixcore/wwwroot/system-prompts/content-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/data-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/extract-tool-params.md","src/apps/mixcore/wwwroot/system-prompts/generate-column-value.md","src/apps/mixcore/wwwroot/system-prompts/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/generate-mixdb-record.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification-update-content.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/parse-schema-description.md","src/apps/mixcore/wwwroot/system-prompts/mcp/planning.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification-default-context.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification.md","src/apps/mixcore/wwwroot/system-prompts/module-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/planning-prompt.md","src/apps/mixcore/wwwroot/system-prompts/step-execution-prompt.md","src/apps/mixcore/wwwroot/system-prompts/tool-classification.md"],"src — mixcore.host":["src/mixcore.host/AppHost.cs","src/mixcore.host/Properties/launchSettings.json","src/mixcore.host/appsettings.Development.json","src/mixcore.host/appsettings.json","src/mixcore.host/mixcore.host.csproj"],"src — modules":["src/modules/account/mix.account/Controllers/MixAccountController.cs","src/modules/account/mix.account/Controllers/OAuthClientController.cs","src/modules/account/mix.account/Interfaces/IMixEdmService.cs","src/modules/account/mix.account/Program.cs","src/modules/account/mix.account/Properties/launchSettings.json","src/modules/account/mix.account/Services/DefaultEdmService.cs","src/modules/account/mix.account/Startup.cs","src/modules/account/mix.account/appsettings.Development.json","src/modules/account/mix.account/appsettings.json","src/modules/account/mix.account/mix.account.csproj","src/modules/account/mix.auth/Attributes/MixAuthorizeAttribute.cs","src/modules/account/mix.auth/Attributes/MixAuthorizeOptionalAttribute.cs","src/modules/account/mix.auth/Authorization/ClaimRequirement.cs","src/modules/account/mix.auth/Constants/MixClaims.cs","src/modules/account/mix.auth/Constants/MixRoles.cs","src/modules/account/mix.auth/Constants/OAuthConstants.cs","src/modules/account/mix.auth/DTOs/GrantPermissionsDto.cs","src/modules/account/mix.auth/DTOs/RenewTokenDto.cs","src/modules/account/mix.auth/Enums/AuthorizationGrantTypesEnum.cs","src/modules/account/mix.auth/Enums/MixExternalLoginProviders.cs","src/modules/account/mix.auth/Enums/MixRoleEnums.cs","src/modules/account/mix.auth/Enums/OAuthErrorType.cs","src/modules/account/mix.auth/Enums/TokenTypeEnum.cs","src/modules/account/mix.auth/Extensions/AuthServiceCollectionExtensions.cs","src/modules/account/mix.auth/Extensions/AuthenticationBuilderExtensions.cs","src/modules/account/mix.auth/Extensions/ServiceCollectionExtensions.cs","src/modules/account/mix.auth/Handlers/OAuthClientHandlers.cs","src/modules/account/mix.auth/Helpers/AuthExtensions.cs","src/modules/account/mix.auth/Helpers/JwtSecurityKeyHelper.cs","src/modules/account/mix.auth/Helpers/OAuth2ServerHelpers.cs","src/modules/account/mix.auth/Interfaces/IMessageSenders.cs","src/modules/account/mix.auth/Interfaces/IMixIdentityService.cs","src/modules/account/mix.auth/Interfaces/IOAuthClientService.cs","src/modules/account/mix.auth/Interfaces/IOAuthCodeStoreService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenRevocationService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenService.cs","src/modules/account/mix.auth/Models/ExternalLoginResultModel.cs","src/modules/account/mix.auth/Models/ExternalLoginViewModel.cs","src/modules/account/mix.auth/Models/ForgotPasswordRequestModel.cs","src/modules/account/mix.auth/Models/LoginRequestModel.cs","src/modules/account/mix.auth/Models/LoginResponseModel.cs","src/modules/account/mix.auth/Models/Manage/ManageViewModels.cs","src/modules/account/mix.auth/Models/OAuth/CheckOAuthClientResult.cs","src/modules/account/mix.auth/Models/OAuth/OAuthCode.cs","src/modules/account/mix.auth/Models/OAuth/OAuthRequest.cs","src/modules/account/mix.auth/Models/OAuth/OAuthServerOptions.cs","src/modules/account/mix.auth/Models/OAuth/Requests/OAuthRequests.cs","src/modules/account/mix.auth/Models/OAuth/Responses/OAuthResponses.cs","src/modules/account/mix.auth/Models/ParsedExternalAccessToken.cs","src/modules/account/mix.auth/Models/RegisterExternalBindingModel.cs","src/modules/account/mix.auth/Models/RegisterRequestModel.cs","src/modules/account/mix.auth/Models/ResetPasswordRequestModel.cs","src/modules/account/mix.auth/Models/RoleBOModel.cs","src/modules/account/mix.auth/Models/SearchAccountQueryModel.cs","src/modules/account/mix.auth/Models/TokenResponseModel.cs","src/modules/account/mix.auth/Models/UserRoleModel.cs","src/modules/account/mix.auth/Services/MessageSenders.cs","src/modules/account/mix.auth/Services/MixIdentityService.cs","src/modules/account/mix.auth/Services/MixPermissionService.cs","src/modules/account/mix.auth/Services/OAuthClientService.cs","src/modules/account/mix.auth/Services/OAuthCodeStoreService.cs","src/modules/account/mix.auth/Services/OAuthTokenRevocationService.cs","src/modules/account/mix.auth/Services/OAuthTokenService.cs","src/modules/account/mix.auth/Services/TenantIdentityServices.cs","src/modules/account/mix.auth/ViewModels/OAuthClientViewModel.cs","src/modules/account/mix.auth/mix.auth.csproj","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor.cs","src/modules/admin/mix.admin.ui/Components/AdminNavigationContext.cs","src/modules/admin/mix.admin.ui/Components/AiCompanionPanel.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor.js","src/modules/admin/mix.admin.ui/Components/AppEditorSection.razor","src/modules/admin/mix.admin.ui/Components/AppListSection.razor","src/modules/admin/mix.admin.ui/Components/AppearanceSection.razor","src/modules/admin/mix.admin.ui/Components/AuditLogSection.razor","src/modules/admin/mix.admin.ui/Components/AutomationSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DomainListSection.razor","src/modules/admin/mix.admin.ui/Components/DynamicDataSection.razor","src/modules/admin/mix.admin.ui/Components/FileManagerSection.razor","src/modules/admin/mix.admin.ui/Components/GoalsSection.razor","src/modules/admin/mix.admin.ui/Components/IntegrationSection.razor","src/modules/admin/mix.admin.ui/Components/IssuesSection.razor","src/modules/admin/mix.admin.ui/Components/KanbanSection.razor","src/modules/admin/mix.admin.ui/Components/LanguageSection.razor","src/modules/admin/mix.admin.ui/Components/LocalizationSection.razor","src/modules/admin/mix.admin.ui/Components/MediaLibrarySection.razor","src/modules/admin/mix.admin.ui/Components/MenuBuilderSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor.cs","src/modules/admin/mix.admin.ui/Components/OAuthClientSection.razor","src/modules/admin/mix.admin.ui/Components/PageEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PageListSection.razor","src/modules/admin/mix.admin.ui/Components/PermissionListSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor.cs","src/modules/admin/mix.admin.ui/Components/PostListSection.razor","src/modules/admin/mix.admin.ui/Components/PostListSection.razor.cs","src/modules/admin/mix.admin.ui/Components/ProfileSection.razor","src/modules/admin/mix.admin.ui/Components/QueueLogSection.razor","src/modules/admin/mix.admin.ui/Components/RoleManagerSection.razor","src/modules/admin/mix.admin.ui/Components/SchedulerSection.razor","src/modules/admin/mix.admin.ui/Components/SettingsSection.razor","src/modules/admin/mix.admin.ui/Components/TaxonomySection.razor","src/modules/admin/mix.admin.ui/Components/TenantEditorSection.razor","src/modules/admin/mix.admin.ui/Components/TenantListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeStoreSection.razor","src/modules/admin/mix.admin.ui/Components/UserEditorSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor.cs","src/modules/admin/mix.admin.ui/_Imports.razor","src/modules/admin/mix.admin.ui/mix.admin.ui.csproj","src/modules/ai/mix.ai.ui/Components/AiChatPage.razor","src/modules/ai/mix.ai.ui/Components/AiSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/ChatPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/McpSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/MessageItem.razor","src/modules/ai/mix.ai.ui/Components/Chat/ProviderModelPicker.razor","src/modules/ai/mix.ai.ui/Components/Preview/PreviewPanel.razor","src/modules/ai/mix.ai.ui/Models/AiSettingsModels.cs","src/modules/ai/mix.ai.ui/Models/ChatMessage.cs","src/modules/ai/mix.ai.ui/Models/ChatSession.cs","src/modules/ai/mix.ai.ui/Models/McpSettings.cs","src/modules/ai/mix.ai.ui/Services/AiChatService.cs","src/modules/ai/mix.ai.ui/Services/McpToolsService.cs","src/modules/ai/mix.ai.ui/_Imports.razor","src/modules/ai/mix.ai.ui/mix.ai.ui.csproj","src/modules/ai/mix.ai.ui/wwwroot/css/ai-chat.css","src/modules/ai/mix.ai/Agents/Base/AgentProcessResult.cs","src/modules/ai/mix.ai/Agents/Base/AgentRequest.cs","src/modules/ai/mix.ai/Agents/Base/BaseAgent.cs","src/modules/ai/mix.ai/Agents/Base/IAgent.cs","src/modules/ai/mix.ai/Agents/ChatAgent.cs","src/modules/ai/mix.ai/Agents/DatabaseAgent.cs","src/modules/ai/mix.ai/Agents/PlanningAgent.cs","src/modules/ai/mix.ai/Agents/RoutingAgent.cs","src/modules/ai/mix.ai/Agents/TaskAgent.cs","src/modules/ai/mix.ai/Background/LLMChatHostedService.cs","src/modules/ai/mix.ai/Background/RAGImportSubscriber.cs","src/modules/ai/mix.ai/Constants/AIHubMethods.cs","src/modules/ai/mix.ai/Constants/AIQueueTopics.cs","src/modules/ai/mix.ai/Constants/VectorDatabaseCollectionNames.cs","src/modules/ai/mix.ai/Controllers/AIChatController.cs","src/modules/ai/mix.ai/Controllers/AIGenerationController.cs","src/modules/ai/mix.ai/Controllers/RAGController.cs","src/modules/ai/mix.ai/Domain/Dtos/AskAIDto.cs","src/modules/ai/mix.ai/Domain/Dtos/GenerateValueDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchRequestDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchResponseDto.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIContentMessageViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIPlanViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AgentProcessResultViewModel.cs","src/modules/ai/mix.ai/Hubs/AIContentEditorHub.cs","src/modules/ai/mix.ai/Hubs/LLMHub.cs","src/modules/ai/mix.ai/Models/IntentCacheModels.cs","src/modules/ai/mix.ai/Models/TaskModels.cs","src/modules/ai/mix.ai/Program.cs","src/modules/ai/mix.ai/Properties/launchSettings.json","src/modules/ai/mix.ai/Services/AISettingsService.cs","src/modules/ai/mix.ai/Services/Agents/ConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IMcpClientService.cs","src/modules/ai/mix.ai/Services/Agents/ISystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/ITokenOptimizer.cs","src/modules/ai/mix.ai/Services/Agents/McpClientService.cs","src/modules/ai/mix.ai/Services/Agents/SystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/TokenOptimizer.cs","src/modules/ai/mix.ai/Services/ITaskStateService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIRequest.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIResponse.cs","src/modules/ai/mix.ai/Services/LLM/Generation/BaseGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GeminiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GenerationModality.cs","src/modules/ai/mix.ai/Services/LLM/Generation/IProviderService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/OpenAiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/LlmServiceFactory.cs","src/modules/ai/mix.ai/Services/MixAIService.cs","src/modules/ai/mix.ai/Services/RAG/ChunkingService.cs","src/modules/ai/mix.ai/Services/RAG/EmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/IEmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/ISemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/IVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/IndexingProgressReport.cs","src/modules/ai/mix.ai/Services/RAG/InstructionIndexingService.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagClient.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagInstructionSeeder.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagModels.cs","src/modules/ai/mix.ai/Services/RAG/PostgresVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/QdrantVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/RAGContext.cs","src/modules/ai/mix.ai/Services/RAG/RAGProcessor.cs","src/modules/ai/mix.ai/Services/RAG/SearchResult.cs","src/modules/ai/mix.ai/Services/RAG/SemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/VectorDbServiceFactory.cs","src/modules/ai/mix.ai/Services/RAG/VectorRecord.cs","src/modules/ai/mix.ai/Services/TaskService.cs","src/modules/ai/mix.ai/Services/TaskStateService.cs","src/modules/ai/mix.ai/Startup.cs","src/modules/ai/mix.ai/Tools/DatabaseQueryTool.cs","src/modules/ai/mix.ai/Tools/EchoTool.cs","src/modules/ai/mix.ai/Tools/FetchUrlTool.cs","src/modules/ai/mix.ai/Tools/IMixDbDataService.cs","src/modules/ai/mix.ai/Tools/MixDbDataTool.cs","src/modules/ai/mix.ai/Tools/MixDbSchemaTool.cs","src/modules/ai/mix.ai/Tools/MixModuleContentTool.cs","src/modules/ai/mix.ai/Tools/MixNavigationTool.cs","src/modules/ai/mix.ai/Tools/MixPageContentTool.cs","src/modules/ai/mix.ai/Tools/MixPageModuleTool.cs","src/modules/ai/mix.ai/Tools/MixPostContentTool.cs","src/modules/ai/mix.ai/Tools/MixTemplateTool.cs","src/modules/ai/mix.ai/Tools/NullMixDbDataService.cs","src/modules/ai/mix.ai/Tools/RAGSearchTool.cs","src/modules/ai/mix.ai/Tools/TextFileTool.cs","src/modules/ai/mix.ai/Tools/ToolDiscovery.cs","src/modules/ai/mix.ai/mix.ai.csproj","src/modules/cms/mix.content/Controllers/ModuleController.cs","src/modules/cms/mix.content/Controllers/PageController.cs","src/modules/cms/mix.content/Handlers/ModuleContentHandlers.cs","src/modules/cms/mix.content/Handlers/PageContentHandlers.cs","src/modules/cms/mix.content/Handlers/PostContentHandlers.cs","src/modules/cms/mix.content/Properties/launchSettings.json","src/modules/cms/mix.content/Services/CmsPageContentService.cs","src/modules/cms/mix.content/Services/ModuleContentService.cs","src/modules/cms/mix.content/Services/PostContentService.cs","src/modules/cms/mix.content/Startup.cs","src/modules/cms/mix.content/ViewModels/CmsPageContentViewModel.cs","src/modules/cms/mix.content/ViewModels/ModuleContentViewModel.cs","src/modules/cms/mix.content/ViewModels/PostContentViewModel.cs","src/modules/cms/mix.content/mix.content.csproj","src/modules/cms/mix.datasource/Controllers/DataSourceController.cs","src/modules/cms/mix.datasource/Controllers/DataSourceTableDataController.cs","src/modules/cms/mix.datasource/Cqrs/Commands/MigrateDatabaseCommand.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceDeleteCommandHandler.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceHandlers.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/MigrateDatabaseCommandHandler.cs","src/modules/cms/mix.datasource/Dtos/DataSourceTableDto.cs","src/modules/cms/mix.datasource/Dtos/SearchDataSourceTableRequestDto.cs","src/modules/cms/mix.datasource/Helpers/DataSourceDbHelper.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceMigrationService.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceTableDataService.cs","src/modules/cms/mix.datasource/Program.cs","src/modules/cms/mix.datasource/Properties/launchSettings.json","src/modules/cms/mix.datasource/Services/DataSourceMigrationService.cs","src/modules/cms/mix.datasource/Services/DataSourceTableDataService.cs","src/modules/cms/mix.datasource/Services/DatabaseCrudService.cs","src/modules/cms/mix.datasource/Services/MixDbDataService.cs","src/modules/cms/mix.datasource/Startup.cs","src/modules/cms/mix.datasource/ViewModels/DataSourceViewModel.cs","src/modules/cms/mix.datasource/mix.datasource.csproj","src/modules/installation/mix.installation.api/Controllers/InitCmsController.cs","src/modules/installation/mix.installation.api/Dockerfile","src/modules/installation/mix.installation.api/Program.cs","src/modules/installation/mix.installation.api/Properties/launchSettings.json","src/modules/installation/mix.installation.api/Startup.cs","src/modules/installation/mix.installation.api/appsettings.Development.json","src/modules/installation/mix.installation.api/appsettings.json","src/modules/installation/mix.installation.api/mix.installation.api.csproj","src/modules/installation/mix.installation.api/mix.installatoin.api.http","src/modules/installation/mix.installation.lib/Background/TemplateFileSubscriber.cs","src/modules/installation/mix.installation.lib/Commands/CreateDefaultTemplatesAndPagesCommand.cs","src/modules/installation/mix.installation.lib/DTOs/ImportOptionsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitCmsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitFullSiteDto.cs","src/modules/installation/mix.installation.lib/DTOs/SelectThemeDto.cs","src/modules/installation/mix.installation.lib/Handlers/CreateDefaultTemplatesAndPagesCommandHandler.cs","src/modules/installation/mix.installation.lib/Handlers/MixCultureHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixDbDatabaseHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixModuleHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageContentHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPostHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixTemplateHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixThemeHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/SiteInstallationHandlers.cs","src/modules/installation/mix.installation.lib/Import/ThemeImportContext.cs","src/modules/installation/mix.installation.lib/Interfaces/IInitCmsService.cs","src/modules/installation/mix.installation.lib/Interfaces/IMixThemeImportService.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Models/SiteDataModel.cs","src/modules/installation/mix.installation.lib/Services/AISettingsService.cs","src/modules/installation/mix.installation.lib/Services/InitCmsService.cs","src/modules/installation/mix.installation.lib/Services/MixDbDatabaseService.cs","src/modules/installation/mix.installation.lib/Services/MixThemeImportService.cs","src/modules/installation/mix.installation.lib/Services/ModuleService.cs","src/modules/installation/mix.installation.lib/Services/PageService.cs","src/modules/installation/mix.installation.lib/Services/PostService.cs","src/modules/installation/mix.installation.lib/Services/Processors/BaseThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/MixDbImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ModuleImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PageImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PostImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/TemplateImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ThemeImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/TemplateFileService.cs","src/modules/installation/mix.installation.lib/Services/TemplateService.cs","src/modules/installation/mix.installation.lib/Services/ThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Services/ThemeService.cs","src/modules/installation/mix.installation.lib/Startup.cs","src/modules/installation/mix.installation.lib/ViewModels/MixCultureViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixDbDatabaseViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixModuleViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageContentViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPostViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixTemplateViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixThemeViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/SiteInstallationViewModel.cs","src/modules/installation/mix.installation.lib/mix.installation.lib.csproj","src/modules/installation/mix.installation.ui/Components/InstallationWizard.razor","src/modules/installation/mix.installation.ui/Components/Steps/AdminAccountStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/AiConfigStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/CompletionStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/TenantSetupStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/ThemeImportCombinedStep.razor","src/modules/installation/mix.installation.ui/Models/WizardModels.cs","src/modules/installation/mix.installation.ui/_Imports.razor","src/modules/installation/mix.installation.ui/mix.installation.ui.csproj","src/modules/installation/mix.installation.ui/wwwroot/css/wizard.css"],"src — monitoring":["src/monitoring/grafana/provisioning/dashboards/dashboard.yml","src/monitoring/grafana/provisioning/dashboards/dotnet-aspnetcore.json","src/monitoring/grafana/provisioning/datasources/prometheus.yml","src/monitoring/prometheus/prometheus.yml"],"src — platform":["src/platform/common/mix-heart/README.md","src/platform/common/mix-heart/StyleCop.Cache","src/platform/common/mix-heart/git-reset-hard.bat","src/platform/common/mix-heart/nuget.config","src/platform/common/mix-heart/src/Constants/MixFileExtensions.cs","src/platform/common/mix-heart/src/Constants/MixHeartConstants.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/CacheInvalidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/UnitOfWorkBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/ValidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Commands/CreateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/DeleteCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveFieldsCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveManyCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/UpdateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/GenericViewModelHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/QueryHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/ICommand.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/IQuery.cs","src/platform/common/mix-heart/src/Cqrs/Notifications/MixEntityChangedNotification.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetByIdQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetListQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetPagingQuery.cs","src/platform/common/mix-heart/src/Cqrs/ServiceCollectionExtensions.Cqrs.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCache.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/MySqlCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/PostgresCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqlServerCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqliteCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Entity.cs","src/platform/common/mix-heart/src/Entities/EntityBase.cs","src/platform/common/mix-heart/src/Entities/IEntity.cs","src/platform/common/mix-heart/src/Entities/IHasPrimaryKey.cs","src/platform/common/mix-heart/src/Entities/SimpleEntityBase.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MSSQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MySQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/POSTGRES/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/SQLITE/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/Enums/ExpressionMethod.cs","src/platform/common/mix-heart/src/Enums/MixCacheMode.cs","src/platform/common/mix-heart/src/Enums/MixCacheStatus.cs","src/platform/common/mix-heart/src/Enums/MixContentStatus.cs","src/platform/common/mix-heart/src/Enums/MixDatabaseProvider.cs","src/platform/common/mix-heart/src/Enums/MixErrorStatus.cs","src/platform/common/mix-heart/src/Enums/SortDirection.cs","src/platform/common/mix-heart/src/Enums/ViewModelAction.cs","src/platform/common/mix-heart/src/Exceptions/EntityNotFoundException.cs","src/platform/common/mix-heart/src/Exceptions/MixException.cs","src/platform/common/mix-heart/src/Extensions/ExpressionExtensions.cs","src/platform/common/mix-heart/src/Extensions/IQueryableExtensions.cs","src/platform/common/mix-heart/src/Extensions/ModelBuilderExtensions.cs","src/platform/common/mix-heart/src/Extensions/ServiceExtension.cs","src/platform/common/mix-heart/src/Extensions/StringExtension.cs","src/platform/common/mix-heart/src/Factories/CacheEngineFactory.cs","src/platform/common/mix-heart/src/Helpers/AesEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/NewtonSoftHelper.cs","src/platform/common/mix-heart/src/Helpers/RSAEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/ReflectionHelper.cs","src/platform/common/mix-heart/src/Helpers/ViewModelHelper.cs","src/platform/common/mix-heart/src/Interfaces/IDitributedCacheClient.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/MySqlCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/PostgresCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/SqlServerCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/SqliteCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Model/EntityPropertyModel.cs","src/platform/common/mix-heart/src/Model/FileModel.cs","src/platform/common/mix-heart/src/Model/MixHeartConfigurationModel.cs","src/platform/common/mix-heart/src/Model/MixSortByColumn.cs","src/platform/common/mix-heart/src/Model/ModifiedEntityModel.cs","src/platform/common/mix-heart/src/Model/PagingModel.cs","src/platform/common/mix-heart/src/Model/PagingResponseModel.cs","src/platform/common/mix-heart/src/Model/RedisCacheConfigurationModel.cs","src/platform/common/mix-heart/src/Model/SaveResult.cs","src/platform/common/mix-heart/src/Repository/EntityRepository.cs","src/platform/common/mix-heart/src/Repository/IRepositoryBase.cs","src/platform/common/mix-heart/src/Repository/QueryRepository.cs","src/platform/common/mix-heart/src/Repository/Repository.cs","src/platform/common/mix-heart/src/Repository/RepositoryBase.cs","src/platform/common/mix-heart/src/Repository/ViewQueryRepository.cs","src/platform/common/mix-heart/src/ServiceCollectionExtensions.cs","src/platform/common/mix-heart/src/Services/AppSettingServiceBase.cs","src/platform/common/mix-heart/src/Services/ConfigurationServiceBase.cs","src/platform/common/mix-heart/src/Services/HybridCacheClient.cs","src/platform/common/mix-heart/src/Services/MixCacheService.cs","src/platform/common/mix-heart/src/Services/MixDatabaseCacheClient.cs","src/platform/common/mix-heart/src/Services/MixFileHelper.cs","src/platform/common/mix-heart/src/Services/MixStaticFileCacheClient.cs","src/platform/common/mix-heart/src/Services/RedisCacheClient.cs","src/platform/common/mix-heart/src/Services/SingletonService.cs","src/platform/common/mix-heart/src/UnitOfWork/GenericUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/IUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/UnitOfWorkInfo.cs","src/platform/common/mix-heart/src/ViewModel/IHeartViewModel.cs","src/platform/common/mix-heart/src/ViewModel/QueryViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/SimpleViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/ViewModelBase.cs","src/platform/common/mix-heart/src/mix.heart.csproj","src/platform/common/mix-heart/src/mix.heart.csproj.DotSettings","src/platform/common/mix-heart/src/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/platform/common/mix-heart/wiki/mix-heart.md","src/platform/common/mix.constant/Constants/BaseUrls.cs","src/platform/common/mix.constant/Constants/MixAppConfigFilePaths.cs","src/platform/common/mix.constant/Constants/MixAppSettingKeywords.cs","src/platform/common/mix.constant/Constants/MixAppSettingsSection.cs","src/platform/common/mix.constant/Constants/MixAuthConfigurations.cs","src/platform/common/mix.constant/Constants/MixConfigurationNames.cs","src/platform/common/mix.constant/Constants/MixConfigurations.cs","src/platform/common/mix.constant/Constants/MixConstants.cs","src/platform/common/mix.constant/Constants/MixCorsPolicies.cs","src/platform/common/mix.constant/Constants/MixDbCommandQueueActions.cs","src/platform/common/mix.constant/Constants/MixDbTableNames.cs","src/platform/common/mix.constant/Constants/MixDefaultThemes.cs","src/platform/common/mix.constant/Constants/MixDefaultValues.cs","src/platform/common/mix.constant/Constants/MixEncryptKeywords.cs","src/platform/common/mix.constant/Constants/MixEnvironments.cs","src/platform/common/mix.constant/Constants/MixFolders.cs","src/platform/common/mix.constant/Constants/MixModuleNames.cs","src/platform/common/mix.constant/Constants/MixQueryColumnName.cs","src/platform/common/mix.constant/Constants/MixQueueActions.cs","src/platform/common/mix.constant/Constants/MixQueueTopics.cs","src/platform/common/mix.constant/Constants/MixRepoDb.cs","src/platform/common/mix.constant/Constants/MixRequestQueryKeywords.cs","src/platform/common/mix.constant/Constants/MixTemplateFolders.cs","src/platform/common/mix.constant/Constants/MixThemePackageConstants.cs","src/platform/common/mix.constant/Enums/HttpRequestMethod.cs","src/platform/common/mix.constant/Enums/InitStep.cs","src/platform/common/mix.constant/Enums/MixAppConfigEnums.cs","src/platform/common/mix.constant/Enums/MixCalculateOperatorKind.cs","src/platform/common/mix.constant/Enums/MixConjunction.cs","src/platform/common/mix.constant/Enums/MixContentType.cs","src/platform/common/mix.constant/Enums/MixDataType.cs","src/platform/common/mix.constant/Enums/MixDatabaseNamingConvention.cs","src/platform/common/mix.constant/Enums/MixDbCommandQueueAction.cs","src/platform/common/mix.constant/Enums/MixDbDataAssociationType.cs","src/platform/common/mix.constant/Enums/MixDbTableParentType.cs","src/platform/common/mix.constant/Enums/MixDbTableRelationshipType.cs","src/platform/common/mix.constant/Enums/MixDbTableType.cs","src/platform/common/mix.constant/Enums/MixEncryptType.cs","src/platform/common/mix.constant/Enums/MixExpressionRule.cs","src/platform/common/mix.constant/Enums/MixLogicalOperatorKind.cs","src/platform/common/mix.constant/Enums/MixMenuItemType.cs","src/platform/common/mix.constant/Enums/MixModuleType.cs","src/platform/common/mix.constant/Enums/MixMvcViewMode.cs","src/platform/common/mix.constant/Enums/MixPageType.cs","src/platform/common/mix.constant/Enums/MixQueueMessageLogState.cs","src/platform/common/mix.constant/Enums/MixQueueProvider.cs","src/platform/common/mix.constant/Enums/MixResponseKey.cs","src/platform/common/mix.constant/Enums/MixResponseStatus.cs","src/platform/common/mix.constant/Enums/MixRestAction.cs","src/platform/common/mix.constant/Enums/MixRestStatus.cs","src/platform/common/mix.constant/Enums/MixStorageProvider.cs","src/platform/common/mix.constant/Enums/MixStructureType.cs","src/platform/common/mix.constant/Enums/MixTemplateFolderType.cs","src/platform/common/mix.constant/Enums/MixUrlAliasType.cs","src/platform/common/mix.constant/Enums/MixUserStatus.cs","src/platform/common/mix.constant/mix.constant.csproj","src/platform/common/mix.shared/Base/ViewModel/TenantDataViewModelBase.cs","src/platform/common/mix.shared/Dtos/AlterColumnDto.cs","src/platform/common/mix.shared/Dtos/FilterContentRequestDto.cs","src/platform/common/mix.shared/Dtos/GetIdsDto.cs","src/platform/common/mix.shared/Dtos/MixDbCollumnDto.cs","src/platform/common/mix.shared/Dtos/MixQueryField.cs","src/platform/common/mix.shared/Dtos/SearchMixDbRequestDto.cs","src/platform/common/mix.shared/Dtos/SearchQueryField.cs","src/platform/common/mix.shared/Dtos/SearchRequestDto.cs","src/platform/common/mix.shared/Enums/ApplicationType.cs","src/platform/common/mix.shared/Extensions/ConfigurationBuilderExtensions.cs","src/platform/common/mix.shared/Extensions/ConfigurationExtension.cs","src/platform/common/mix.shared/Extensions/CorsExtensions.cs","src/platform/common/mix.shared/Extensions/JObjectExtensions.cs","src/platform/common/mix.shared/Extensions/MiddlewareExtensions.cs","src/platform/common/mix.shared/Extensions/ServiceCollectionExtensions.cs","src/platform/common/mix.shared/Extensions/SessonExtensions.cs","src/platform/common/mix.shared/Extensions/SwaggerExtensions.cs","src/platform/common/mix.shared/Helpers/MixAssemblyFinder.cs","src/platform/common/mix.shared/Helpers/MixCmsHelper.cs","src/platform/common/mix.shared/Helpers/MixHelper.cs","src/platform/common/mix.shared/Helpers/SEOHelper.cs","src/platform/common/mix.shared/Interfaces/IGlobalConfigurations.cs","src/platform/common/mix.shared/Interfaces/IStartupService.cs","src/platform/common/mix.shared/Middleware/InitRedirectMiddleware.cs","src/platform/common/mix.shared/MixAssemblyFinder.cs","src/platform/common/mix.shared/Models/ApiResponseModel.cs","src/platform/common/mix.shared/Models/ColumnConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AIConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AgentModel.cs","src/platform/common/mix.shared/Models/Configurations/AppSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/DatabaseConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/EndpointConfigurationsModel.cs","src/platform/common/mix.shared/Models/Configurations/GlobalSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/GoogleSettingModel.cs","src/platform/common/mix.shared/Models/Configurations/LLMCredentialModels.cs","src/platform/common/mix.shared/Models/Configurations/LogConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixAuthenticationConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixRateLimitConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/OcelotConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/PortalConfigurationModel.cs","src/platform/common/mix.shared/Models/ConnectionStrings.cs","src/platform/common/mix.shared/Models/DataRelationshipModel.cs","src/platform/common/mix.shared/Models/HttpRequestModel.cs","src/platform/common/mix.shared/Models/MixCultureModel.cs","src/platform/common/mix.shared/Models/MixDbAuditLogModel.cs","src/platform/common/mix.shared/Models/PagingRequestModel.cs","src/platform/common/mix.shared/Models/SearchMixDbRequestModel.cs","src/platform/common/mix.shared/Models/SmtpConfiguration.cs","src/platform/common/mix.shared/Services/HttpService.cs","src/platform/common/mix.shared/Services/JsonConfigurationServiceBase.cs","src/platform/common/mix.shared/Services/JsonConfigurationsServiceBase.cs","src/platform/common/mix.shared/mix.shared.csproj","src/platform/common/mix.ui.shared/Catalog/AiProviderCatalog.cs","src/platform/common/mix.ui.shared/Components/AI/LlmCredentialsEditor.razor","src/platform/common/mix.ui.shared/Models/AiCredentialEntry.cs","src/platform/common/mix.ui.shared/_Imports.razor","src/platform/common/mix.ui.shared/mix.ui.shared.csproj","src/platform/common/mix.ui.shared/wwwroot/css/llm-editor.css","src/platform/common/mixcore.aspire.service/ApiKey/ApiKeyAuthenticationHandler.cs","src/platform/common/mixcore.aspire.service/Extensions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdForwardedHeadersStartupFilter.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdOptions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdShutdownService.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountOptions.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenCache.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandler.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerFilter.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerOptions.cs","src/platform/common/mixcore.aspire.service/mixcore.aspire.service.csproj","src/platform/communication/mix.mqtt.lib/Controllers/MqttController.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/Logger_Samples.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/PackageInspection_Samples.cs","src/platform/communication/mix.mqtt.lib/Extensions/StartupExtensions.cs","src/platform/communication/mix.mqtt.lib/Helpers/CertificateHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/MqttHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/ObjectExtensions.cs","src/platform/communication/mix.mqtt.lib/Models/AppSettingsProvider.cs","src/platform/communication/mix.mqtt.lib/Models/BrokerHostSettings.cs","src/platform/communication/mix.mqtt.lib/Models/ClientSettings.cs","src/platform/communication/mix.mqtt.lib/Models/MQTTSetting.cs","src/platform/communication/mix.mqtt.lib/RpcClient/RpcClient_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_ASP_NET_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Diagnostics_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Intercepting_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Retained_Messages_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Simple_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_TLS_Samples.cs","src/platform/communication/mix.mqtt.lib/Service/MqttServerHostedService.cs","src/platform/communication/mix.mqtt.lib/mix.mqtt.lib.csproj","src/platform/communication/mix.notification/Interfaces/IMixEdmService.cs","src/platform/communication/mix.notification/Services/MixEdmService.cs","src/platform/communication/mix.notification/mix.notification.csproj","src/platform/communication/mix.queue/Attributes/GeneratePublisherAttribute.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/GrpcStreamingService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqGrpcService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqStartupService.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/Readme.md","src/platform/communication/mix.queue/Engines/Mqtt/MqttPublisher.cs","src/platform/communication/mix.queue/Engines/Mqtt/MqttSubscriber.cs","src/platform/communication/mix.queue/Engines/PublisherBase.cs","src/platform/communication/mix.queue/Engines/QueueEngineFactory.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQPublisher.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQSubscriber.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitModelPooledObjectPolicy.cs","src/platform/communication/mix.queue/Engines/SubscriberBase.cs","src/platform/communication/mix.queue/Extensions/QueueServiceCollectionExtension.cs","src/platform/communication/mix.queue/Interfaces/IMemoryQueueService.cs","src/platform/communication/mix.queue/Interfaces/IQueuePublisher.cs","src/platform/communication/mix.queue/Interfaces/IQueueSubscriber.cs","src/platform/communication/mix.queue/Models/GrpcChannelModel.cs","src/platform/communication/mix.queue/Models/MessageQueueModel.cs","src/platform/communication/mix.queue/Models/MessageQueueSettings.cs","src/platform/communication/mix.queue/Models/MixQueueMessages.cs","src/platform/communication/mix.queue/Models/MixSubscribtionModel.cs","src/platform/communication/mix.queue/Models/MixTopicModel.cs","src/platform/communication/mix.queue/Models/QueueSetting/AzureQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/GoogleQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/IQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/KafkaQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/MixQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/RabitMqQueueSetting.cs","src/platform/communication/mix.queue/Protos/mixmq.proto","src/platform/communication/mix.queue/Readme.md","src/platform/communication/mix.queue/Services/MemoryQueueService.cs","src/platform/communication/mix.queue/Services/MessageQueueSettingsService.cs","src/platform/communication/mix.queue/mix.queue.csproj","src/platform/communication/mix.signalr/Constants/HubEndpoints.cs","src/platform/communication/mix.signalr/Constants/HubMethods.cs","src/platform/communication/mix.signalr/Enums/MessageAction.cs","src/platform/communication/mix.signalr/Enums/MessageType.cs","src/platform/communication/mix.signalr/HubClients/BaseHubClientService.cs","src/platform/communication/mix.signalr/HubClients/PortalHubClientService.cs","src/platform/communication/mix.signalr/Hubs/BaseSignalrHub.cs","src/platform/communication/mix.signalr/Hubs/PortalHub.cs","src/platform/communication/mix.signalr/Interfaces/IHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/ILogStreamHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/IMixDbCommandHubClientService.cs","src/platform/communication/mix.signalr/Models/HubUserModel.cs","src/platform/communication/mix.signalr/Models/SignalRMessageModel.cs","src/platform/communication/mix.signalr/mix.signalr.csproj","src/platform/mix.database/Base/AccountEntityBaseConfiguration.cs","src/platform/mix.database/Base/BaseDbContext.cs","src/platform/mix.database/Base/Cms/AssociationBaseConfiguration.cs","src/platform/mix.database/Base/Cms/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/Base/IDatabaseConstants.cs","src/platform/mix.database/Base/Service/TenantServiceBase.cs","src/platform/mix.database/Base/_CassandraDatabaseConstants.cs","src/platform/mix.database/Base/_MySqlDatabaseConstants.cs","src/platform/mix.database/Base/_PostgresSqlDatabaseConstants.cs","src/platform/mix.database/Base/_SqlServerDatabaseConstants.cs","src/platform/mix.database/Base/_SqliteDatabaseConstants.cs","src/platform/mix.database/Constants/MixDbDatabaseNames.cs","src/platform/mix.database/DesignTimeFactories/DesignTimeConnectionStrings.cs","src/platform/mix.database/DesignTimeFactories/MixCmsContextDesignTimeFactories.cs","src/platform/mix.database/Entities/AI/AIDatabaseNames.cs","src/platform/mix.database/Entities/AI/AIDbContext.cs","src/platform/mix.database/Entities/AI/AIPlan.cs","src/platform/mix.database/Entities/AI/AIPlanEnums.cs","src/platform/mix.database/Entities/AI/AIPlanStep.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanConfiguration.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanStepConfiguration.cs","src/platform/mix.database/Entities/Account/AspNetRoleClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserLogins.cs","src/platform/mix.database/Entities/Account/AspNetUserRoles.cs","src/platform/mix.database/Entities/Account/AspNetUserTokens.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetRoleClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserLoginsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUserTenantConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUsersConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthClientConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthTokenConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/RefreshTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/SysMixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Account/MixPermission.cs","src/platform/mix.database/Entities/Account/MixRole.cs","src/platform/mix.database/Entities/Account/MixUser.cs","src/platform/mix.database/Entities/Account/MixUserTenant.cs","src/platform/mix.database/Entities/Account/OAuthClient.cs","src/platform/mix.database/Entities/Account/OAuthToken.cs","src/platform/mix.database/Entities/Account/RefreshTokens.cs","src/platform/mix.database/Entities/Account/SysMixDbDataAssociation.cs","src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs","src/platform/mix.database/Entities/Account/_MySqlAccountContext.cs","src/platform/mix.database/Entities/Account/_PostgresSQLAccountContext.cs","src/platform/mix.database/Entities/Account/_SqlServerAccountContext.cs","src/platform/mix.database/Entities/Account/_SqliteAccountContext.cs","src/platform/mix.database/Entities/AuditLog/AuditLog.cs","src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs","src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs","src/platform/mix.database/Entities/Base/AssociationBase.cs","src/platform/mix.database/Entities/Base/ExtraColumnMultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualUniqueNameContentBase.cs","src/platform/mix.database/Entities/Base/TenantEntityBase.cs","src/platform/mix.database/Entities/Base/TenantEntityUniqueNameBase.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixApplicationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixContributorConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixCultureConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbColumnConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDatabaseConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableRelationshipConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDiscussionConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDomainConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixMediaConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleDataConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModulePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPagePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixTenantConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixThemeConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixUrlAliasConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixViewTemplateConfiguration.cs","src/platform/mix.database/Entities/Cms/MixApplication.cs","src/platform/mix.database/Entities/Cms/MixConfiguration.cs","src/platform/mix.database/Entities/Cms/MixConfigurationContent.cs","src/platform/mix.database/Entities/Cms/MixContributor.cs","src/platform/mix.database/Entities/Cms/MixCulture.cs","src/platform/mix.database/Entities/Cms/MixDbColumn.cs","src/platform/mix.database/Entities/Cms/MixDbDataAssociation.cs","src/platform/mix.database/Entities/Cms/MixDbDatabase.cs","src/platform/mix.database/Entities/Cms/MixDbTable.cs","src/platform/mix.database/Entities/Cms/MixDbTableRelationship.cs","src/platform/mix.database/Entities/Cms/MixDiscussion.cs","src/platform/mix.database/Entities/Cms/MixDomain.cs","src/platform/mix.database/Entities/Cms/MixLanguage.cs","src/platform/mix.database/Entities/Cms/MixLanguageContent.cs","src/platform/mix.database/Entities/Cms/MixMedia.cs","src/platform/mix.database/Entities/Cms/MixModule.cs","src/platform/mix.database/Entities/Cms/MixModuleContent.cs","src/platform/mix.database/Entities/Cms/MixModuleData.cs","src/platform/mix.database/Entities/Cms/MixModulePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPage.cs","src/platform/mix.database/Entities/Cms/MixPageContent.cs","src/platform/mix.database/Entities/Cms/MixPageModuleAssociation.cs","src/platform/mix.database/Entities/Cms/MixPagePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPost.cs","src/platform/mix.database/Entities/Cms/MixPostContent.cs","src/platform/mix.database/Entities/Cms/MixPostPostAssociation.cs","src/platform/mix.database/Entities/Cms/MixTemplate.cs","src/platform/mix.database/Entities/Cms/MixTenant.cs","src/platform/mix.database/Entities/Cms/MixTheme.cs","src/platform/mix.database/Entities/Cms/MixUrlAlias.cs","src/platform/mix.database/Entities/Cms/_MixCmsContext.cs","src/platform/mix.database/Entities/Cms/_MySqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_PostgresqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqlServerMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqliteMixCmsContext.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAccess.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAudit.cs","src/platform/mix.database/Entities/Compliance/ConsentEvent.cs","src/platform/mix.database/Entities/Compliance/DataFieldMetadata.cs","src/platform/mix.database/Entities/Compliance/DataProtectionImpactAssessment.cs","src/platform/mix.database/Entities/Compliance/DpiaMitigation.cs","src/platform/mix.database/Entities/Compliance/DpiaRisk.cs","src/platform/mix.database/Entities/Compliance/DsrRequest.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAccessConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAuditConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/ConsentEventConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataFieldMetadataConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataProtectionImpactAssessmentConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaMitigationConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaRiskConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DsrRequestConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/PurposeConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionExecutionConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionPolicyConfiguration.cs","src/platform/mix.database/Entities/Compliance/Purpose.cs","src/platform/mix.database/Entities/Compliance/RetentionExecution.cs","src/platform/mix.database/Entities/Compliance/RetentionPolicy.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataContentAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbEventSubscriberConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixMenuItemConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixNavigationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionEndpointConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PortalMenuConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserDataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserPermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/MixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/MixDbEventSubscriber.cs","src/platform/mix.database/Entities/MixDb/MixMenuItem.cs","src/platform/mix.database/Entities/MixDb/MixMetadata.cs","src/platform/mix.database/Entities/MixDb/MixMetadataContentAssociation.cs","src/platform/mix.database/Entities/MixDb/MixNavigation.cs","src/platform/mix.database/Entities/MixDb/MixPermission.cs","src/platform/mix.database/Entities/MixDb/MixPermissionEndpoint.cs","src/platform/mix.database/Entities/MixDb/MixPortalMenu.cs","src/platform/mix.database/Entities/MixDb/MixUserData.cs","src/platform/mix.database/Entities/MixDb/MixUserPermission.cs","src/platform/mix.database/Entities/MixDb/MySqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/PostgresSqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqlServerMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqliteMixDbDbContext.cs","src/platform/mix.database/Entities/Quartz/QrtzBlobTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzCalendar.cs","src/platform/mix.database/Entities/Quartz/QrtzCronTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzFiredTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzJobDetail.cs","src/platform/mix.database/Entities/Quartz/QrtzLock.cs","src/platform/mix.database/Entities/Quartz/QrtzPausedTriggerGrp.cs","src/platform/mix.database/Entities/Quartz/QrtzSchedulerState.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpleTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpropTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzTrigger.cs","src/platform/mix.database/Entities/Quartz/_MySqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_PostgresSqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_QuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SQliteQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SqlServerQuartzDbContext.cs","src/platform/mix.database/Entities/Queue/EntityConfigurations/MixQueueMessageConfiguration.cs","src/platform/mix.database/Entities/Queue/MixQueueDbContext.cs","src/platform/mix.database/Entities/Queue/MixQueueMessageLog.cs","src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs","src/platform/mix.database/Entities/QueueLog/QueueLog.cs","src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs","src/platform/mix.database/Entities/Settings/GlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/MixGlobalSetting.cs","src/platform/mix.database/Entities/Settings/MySqlGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/PostgresGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqlServerGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqliteGlobalSettingContext.cs","src/platform/mix.database/EntityConfigurations/Base/AssociationBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/SimpleEntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Converters/EncryptedStringConverter.cs","src/platform/mix.database/EntityConfigurations/Converters/StringToJArrayConverter.cs","src/platform/mix.database/EntityConfigurations/MYSQL/Quartz/MySqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/POSTGRES/Quartz/PostgresSqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/PropertyBuilderExtensions.cs","src/platform/mix.database/EntityConfigurations/SQLITE/Quartz/SQLiteQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/SQLSERVER/Quartz/SqlServerQuartzConfigurations.cs","src/platform/mix.database/Extensions/EntityTypeBuilderExtensions.cs","src/platform/mix.database/Extensions/ModelBuilderExtensions.cs","src/platform/mix.database/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.Designer.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.cs","src/platform/mix.database/Migrations/Account/MySql/MySqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.cs","src/platform/mix.database/Migrations/Account/Postgres/PostgresSqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.Designer.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.cs","src/platform/mix.database/Migrations/Account/SqlServer/SqlServerAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.cs","src/platform/mix.database/Migrations/Account/Sqlite/SqliteAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/MySql/MySqlAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/PostgresAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/SqlServerAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/SqliteAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.Designer.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.cs","src/platform/mix.database/Migrations/Cms/MySql/MySqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.cs","src/platform/mix.database/Migrations/Cms/Postgres/PostgresqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.cs","src/platform/mix.database/Migrations/Cms/SqlServer/SqlServerMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.Designer.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.cs","src/platform/mix.database/Migrations/MixQueueDb/MixQueueDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.cs","src/platform/mix.database/Migrations/Quartz/MySql/MySQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.cs","src/platform/mix.database/Migrations/Quartz/Postgres/PostgresSQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/SQLServerQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/SQLiteQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.cs","src/platform/mix.database/Migrations/QueueLog/MySql/MySqlQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/PostgresQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/SqlServerQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/SqlITEQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Extensions/GlobalSettingMigrationExtensions.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.cs","src/platform/mix.database/Migrations/Settings/MySql/MySqlGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.cs","src/platform/mix.database/Migrations/Settings/Postgres/PostgresGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.cs","src/platform/mix.database/Migrations/Settings/SqlServer/SqlServerGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.cs","src/platform/mix.database/Migrations/Settings/Sqlite/SqliteGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Models/MixTenantSystemModel.cs","src/platform/mix.database/Properties/launchSettings.json","src/platform/mix.database/Readme.md","src/platform/mix.database/Services/AppSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/AuthConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/DatabaseService.cs","src/platform/mix.database/Services/MixGlobalSettings/EnvironmentService.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingServiceBase.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/IPSecurityConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixEndpointService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixHeartConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/PortalConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/SmtpConfigService.cs","src/platform/mix.database/TokenTypeEnum.cs","src/platform/mix.database/mix.database.csproj","src/platform/mix.database/wwwroot/default-mixcontent/setting-files/databases.json","src/platform/mix.lib/Controllers/CrudControllerBase.cs","src/platform/mix.lib/Controllers/ReadOnlyControllerBase.cs","src/platform/mix.lib/Controllers/TenantControllerBase.cs","src/platform/mix.lib/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.lib/Helpers/DataTypeHelper.cs","src/platform/mix.lib/Interfaces/ICrudService.cs","src/platform/mix.lib/Interfaces/ITenantService.cs","src/platform/mix.lib/Models/SearchQuery.cs","src/platform/mix.lib/Notifications/QueueEventNotificationHandler.cs","src/platform/mix.lib/Notifications/SignalRNotificationHandler.cs","src/platform/mix.lib/Services/CrudService.cs","src/platform/mix.lib/Services/TenantService.cs","src/platform/mix.lib/Services/TenantServiceBase.cs","src/platform/mix.lib/mix.lib.csproj"],"src — tests":["src/tests/mix.account.tests/Controllers/MixAccountControllerTests.cs","src/tests/mix.account.tests/GlobalTestSettings.cs","src/tests/mix.account.tests/Helpers/CacheServiceFactory.cs","src/tests/mix.account.tests/Helpers/FakeAccountDatabaseService.cs","src/tests/mix.account.tests/Helpers/FakeAuthConfigService.cs","src/tests/mix.account.tests/mix.account.tests.csproj","src/tests/mix.admin.ui.tests/PostEditorTests.cs","src/tests/mix.admin.ui.tests/mix.admin.ui.tests.csproj","src/tests/mix.ai.tests/Agents/AgentProviderResolutionTests.cs","src/tests/mix.ai.tests/Agents/ConversationManagerTests.cs","src/tests/mix.ai.tests/Agents/FakeLlmServiceFactory.cs","src/tests/mix.ai.tests/Agents/RoutingAgentTests.cs","src/tests/mix.ai.tests/Agents/TokenOptimizerTests.cs","src/tests/mix.ai.tests/Controllers/AIChatControllerTests.cs","src/tests/mix.ai.tests/Controllers/RAGControllerTests.cs","src/tests/mix.ai.tests/GlobalTestSettings.cs","src/tests/mix.ai.tests/Services/ChunkingServiceTests.cs","src/tests/mix.ai.tests/Services/EmbeddingServiceTests.cs","src/tests/mix.ai.tests/Services/LlmServiceFactoryTests.cs","src/tests/mix.ai.tests/Services/MixAIServiceTests.cs","src/tests/mix.ai.tests/Services/PostgresVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/QdrantVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagClientTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagInstructionSeederTests.cs","src/tests/mix.ai.tests/Services/SemanticSearchServiceTests.cs","src/tests/mix.ai.tests/mix.ai.tests.csproj","src/tests/mix.aspire.service.tests/Extensions/AddServiceAccountAuthTests.cs","src/tests/mix.aspire.service.tests/Extensions/MapSecureDefaultEndpointsTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdForwardedHeadersStartupFilterTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdShutdownServiceTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenCacheTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerFilterTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerTests.cs","src/tests/mix.aspire.service.tests/mix.aspire.service.tests.csproj","src/tests/mix.cqrs.tests/AssemblyInfo.cs","src/tests/mix.cqrs.tests/Behaviors/BehaviorOrderIntegrationTests.cs","src/tests/mix.cqrs.tests/Behaviors/CacheInvalidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/UnitOfWorkBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/ValidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Fakes/FakeCacheService.cs","src/tests/mix.cqrs.tests/Fakes/FakeMediator.cs","src/tests/mix.cqrs.tests/Fakes/FakeUow.cs","src/tests/mix.cqrs.tests/Fakes/TestDbContext.cs","src/tests/mix.cqrs.tests/Fakes/TestEntity.cs","src/tests/mix.cqrs.tests/Fakes/TestViewModel.cs","src/tests/mix.cqrs.tests/Notifications/QueueEventNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/Notifications/SignalRNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/mix.cqrs.tests.csproj","src/tests/mix.database.migrations.tests/GlobalTestSettings.cs","src/tests/mix.database.migrations.tests/Helpers/TestConnections.cs","src/tests/mix.database.migrations.tests/Helpers/TestDatabaseServiceFactory.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/appsettings.example.json","src/tests/mix.database.migrations.tests/mix.database.migrations.tests.csproj","src/tests/mix.datasource.tests/Controllers/DataSourceControllerTests.cs","src/tests/mix.datasource.tests/GlobalTestSettings.cs","src/tests/mix.datasource.tests/Helpers/FakeDataSourceMigrationService.cs","src/tests/mix.datasource.tests/Helpers/TestServiceFactory.cs","src/tests/mix.datasource.tests/Services/DataSourceMigrationServiceTests.cs","src/tests/mix.datasource.tests/ViewModels/DataSourceTableDtoTests.cs","src/tests/mix.datasource.tests/mix.datasource.tests.csproj","src/tests/mix.gateway.tests/GlobalTestSettings.cs","src/tests/mix.gateway.tests/RouteCheckerTests.cs","src/tests/mix.gateway.tests/mix.gateway.tests.csproj","src/tests/mix.installation.tests/Controllers/InitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/MySqlInitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/SqlServerInitCmsControllerTests.cs","src/tests/mix.installation.tests/GlobalTestSettings.cs","src/tests/mix.installation.tests/Helpers/FakeAppSettingsService.cs","src/tests/mix.installation.tests/Helpers/FakeDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeMySqlDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeSqlServerDatabaseService.cs","src/tests/mix.installation.tests/Helpers/TestCredentials.cs","src/tests/mix.installation.tests/Services/InitCmsServiceTests.cs","src/tests/mix.installation.tests/mix.installation.tests.csproj","src/tests/mix.queue.tests/GlobalTestSettings.cs","src/tests/mix.queue.tests/QueueServiceCollectionExtensionTests.cs","src/tests/mix.queue.tests/mix.queue.tests.csproj"],"tmp_schema":["tmp_schema/schema/schema.json"],"wiki":["wiki/admin-implementation-progress.md","wiki/admin-screens-inventory.md","wiki/admin-screens-inventory_blazor-app.md","wiki/ai-integration.md","wiki/api-reference.md","wiki/architecture.md","wiki/blazor-installation-app.md","wiki/configuration.md","wiki/database-support.md","wiki/developer-skills.md","wiki/getting-started.md","wiki/init-controller-redirect-middleware.md","wiki/json-configuration-folder-extension.md","wiki/lightrag-integration.md","wiki/mix-account.md","wiki/mix-datasource.md","wiki/mix-heart.md","wiki/module-development.md","wiki/multi-tenancy.md","wiki/signalr.md","wiki/testing.md"]},"moduleTree":[{"name":"Root","slug":"root","files":["AGENTS.md","CLAUDE.md","README.md","docker-compose.yml","opencode.json","scalar.config.json"]},{"name":"docs","slug":"docs","files":["docs/superpowers/plans/2026-03-19-mix-account-refactor.md","docs/superpowers/plans/2026-03-20-linkerd-service-mesh-auth.md","docs/superpowers/plans/2026-03-23-mix-ai-module.md","docs/superpowers/plans/2026-03-23-queue-engine-config-validation.md","docs/superpowers/plans/2026-03-24-agent-per-request-provider-model.md","docs/superpowers/plans/2026-03-24-ai-config-step.md","docs/superpowers/plans/2026-03-25-mix-ai-service-gemini.md","docs/superpowers/plans/2026-03-25-mix-heart-cqrs-activation.md","docs/superpowers/plans/2026-03-25-queue-settings-service.md","docs/superpowers/plans/2026-03-27-lightrag-instructions-indexing.md","docs/superpowers/plans/2026-03-30-unified-provider-service.md","docs/superpowers/plans/2026-03-31-ai-embedding-config.md","docs/superpowers/plans/2026-04-01-datasource-mcp-tools.md","docs/superpowers/specs/2026-03-19-mix-account-refactor-design.md","docs/superpowers/specs/2026-03-20-linkerd-metrics-auth-design.md","docs/superpowers/specs/2026-03-23-mix-ai-design.md","docs/superpowers/specs/2026-03-24-ai-config-step-design.md","docs/superpowers/specs/2026-03-25-mix-ai-service-gemini-design.md","docs/superpowers/specs/2026-03-25-mix-heart-cqrs-design.md","docs/superpowers/specs/2026-03-25-queue-settings-service-design.md","docs/superpowers/specs/2026-03-30-unified-provider-service-design.md","docs/superpowers/specs/2026-03-31-ai-embedding-config-design.md"]},{"name":"src","slug":"src","files":[],"children":[{"name":"src — src","slug":"src-src","files":["src/Directory.Build.props","src/docker-compose.monitoring.yml","src/mixcore.sln"]},{"name":"src — apps","slug":"src-apps","files":["src/apps/mixcore/Controllers/AccountController.cs","src/apps/mixcore/Controllers/AdminController.cs","src/apps/mixcore/Controllers/AiChatController.cs","src/apps/mixcore/Controllers/HomeController.cs","src/apps/mixcore/Controllers/InitController.cs","src/apps/mixcore/Controllers/InstallationSetupController.cs","src/apps/mixcore/Dockerfile","src/apps/mixcore/DockerfileLinux","src/apps/mixcore/Domain/Handlers/PageContentHandlers.cs","src/apps/mixcore/Domain/Queries/GetPageBySeoName.cs","src/apps/mixcore/Domain/Services/PageContentService.cs","src/apps/mixcore/Domain/ViewModels/PageContentViewModel.cs","src/apps/mixcore/Gateway/AssemblyInfo.cs","src/apps/mixcore/Gateway/RouteChecker.cs","src/apps/mixcore/Models/ErrorViewModel.cs","src/apps/mixcore/Program.cs","src/apps/mixcore/Properties/PublishProfiles/FolderProfile.pubxml","src/apps/mixcore/Properties/launchSettings.json","src/apps/mixcore/Views/Account/Login.cshtml","src/apps/mixcore/Views/Admin/BlazorAdmin.cshtml","src/apps/mixcore/Views/Admin/Index.cshtml","src/apps/mixcore/Views/AiChat/Index.cshtml","src/apps/mixcore/Views/Home/App.cshtml","src/apps/mixcore/Views/Home/Index.cshtml","src/apps/mixcore/Views/Home/Page.cshtml","src/apps/mixcore/Views/Home/Post.cshtml","src/apps/mixcore/Views/Home/Privacy.cshtml","src/apps/mixcore/Views/Init/Index.cshtml","src/apps/mixcore/Views/Shared/Error.cshtml","src/apps/mixcore/Views/Shared/_AiChatLayout.cshtml","src/apps/mixcore/Views/Shared/_BlazorAdminLayout.cshtml","src/apps/mixcore/Views/Shared/_InitLayout.cshtml","src/apps/mixcore/Views/Shared/_Layout.cshtml","src/apps/mixcore/Views/Shared/_LoginLayout.cshtml","src/apps/mixcore/Views/Shared/_ValidationScriptsPartial.cshtml","src/apps/mixcore/Views/_ViewImports.cshtml","src/apps/mixcore/Views/_ViewStart.cshtml","src/apps/mixcore/appsettings.Development.json","src/apps/mixcore/appsettings.json","src/apps/mixcore/entrypoint.sh","src/apps/mixcore/mixcore.csproj","src/apps/mixcore/mixcore.csproj.Backup.tmp","src/apps/mixcore/wwwroot/css/admin.css","src/apps/mixcore/wwwroot/css/site.css","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ai-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/appsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/authsettings.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/databases.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/endpoints.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/ocelot.json","src/apps/mixcore/wwwroot/default-mixcontent/setting-files/queue-settings.json","src/apps/mixcore/wwwroot/default-mixcontent/templates/Readme.md","src/apps/mixcore/wwwroot/instructions/MIXCORE-CMS-OVERVIEW.md","src/apps/mixcore/wwwroot/instructions/START-HERE.md","src/apps/mixcore/wwwroot/instructions/content/modules.md","src/apps/mixcore/wwwroot/instructions/content/pages.md","src/apps/mixcore/wwwroot/instructions/content/posts.md","src/apps/mixcore/wwwroot/instructions/mixdb/README.md","src/apps/mixcore/wwwroot/instructions/mixdb/best-practices.md","src/apps/mixcore/wwwroot/instructions/mixdb/data-loading-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/database-creation-guide.md","src/apps/mixcore/wwwroot/instructions/mixdb/datasource-services-guide.md","src/apps/mixcore/wwwroot/instructions/reference/developer-guide.md","src/apps/mixcore/wwwroot/instructions/reference/mix-cms-reference.md","src/apps/mixcore/wwwroot/instructions/reference/reference-mcp-tools.md","src/apps/mixcore/wwwroot/instructions/templates/cshtml-razor-syntax-guidelines.md","src/apps/mixcore/wwwroot/instructions/templates/form-template.md","src/apps/mixcore/wwwroot/instructions/templates/master-template.md","src/apps/mixcore/wwwroot/instructions/templates/mixdb-template.md","src/apps/mixcore/wwwroot/instructions/templates/module-template.md","src/apps/mixcore/wwwroot/instructions/templates/page-template.md","src/apps/mixcore/wwwroot/instructions/templates/post-template.md","src/apps/mixcore/wwwroot/instructions/templates/widget-template.md","src/apps/mixcore/wwwroot/instructions/workflows/ai-content-editor-workflow.md","src/apps/mixcore/wwwroot/js/site.js","src/apps/mixcore/wwwroot/system-prompts/content-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/data-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/extract-tool-params.md","src/apps/mixcore/wwwroot/system-prompts/generate-column-value.md","src/apps/mixcore/wwwroot/system-prompts/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/generate-mixdb-record.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification-update-content.md","src/apps/mixcore/wwwroot/system-prompts/mcp/intent-classification.md","src/apps/mixcore/wwwroot/system-prompts/mcp/parse-schema-description.md","src/apps/mixcore/wwwroot/system-prompts/mcp/planning.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification-default-context.md","src/apps/mixcore/wwwroot/system-prompts/mcp/tool-classification.md","src/apps/mixcore/wwwroot/system-prompts/module-analysis-prompt.md","src/apps/mixcore/wwwroot/system-prompts/planning-prompt.md","src/apps/mixcore/wwwroot/system-prompts/step-execution-prompt.md","src/apps/mixcore/wwwroot/system-prompts/tool-classification.md"]},{"name":"src — mixcore.host","slug":"src-mixcore-host","files":["src/mixcore.host/AppHost.cs","src/mixcore.host/Properties/launchSettings.json","src/mixcore.host/appsettings.Development.json","src/mixcore.host/appsettings.json","src/mixcore.host/mixcore.host.csproj"]},{"name":"src — modules","slug":"src-modules","files":["src/modules/account/mix.account/Controllers/MixAccountController.cs","src/modules/account/mix.account/Controllers/OAuthClientController.cs","src/modules/account/mix.account/Interfaces/IMixEdmService.cs","src/modules/account/mix.account/Program.cs","src/modules/account/mix.account/Properties/launchSettings.json","src/modules/account/mix.account/Services/DefaultEdmService.cs","src/modules/account/mix.account/Startup.cs","src/modules/account/mix.account/appsettings.Development.json","src/modules/account/mix.account/appsettings.json","src/modules/account/mix.account/mix.account.csproj","src/modules/account/mix.auth/Attributes/MixAuthorizeAttribute.cs","src/modules/account/mix.auth/Attributes/MixAuthorizeOptionalAttribute.cs","src/modules/account/mix.auth/Authorization/ClaimRequirement.cs","src/modules/account/mix.auth/Constants/MixClaims.cs","src/modules/account/mix.auth/Constants/MixRoles.cs","src/modules/account/mix.auth/Constants/OAuthConstants.cs","src/modules/account/mix.auth/DTOs/GrantPermissionsDto.cs","src/modules/account/mix.auth/DTOs/RenewTokenDto.cs","src/modules/account/mix.auth/Enums/AuthorizationGrantTypesEnum.cs","src/modules/account/mix.auth/Enums/MixExternalLoginProviders.cs","src/modules/account/mix.auth/Enums/MixRoleEnums.cs","src/modules/account/mix.auth/Enums/OAuthErrorType.cs","src/modules/account/mix.auth/Enums/TokenTypeEnum.cs","src/modules/account/mix.auth/Extensions/AuthServiceCollectionExtensions.cs","src/modules/account/mix.auth/Extensions/AuthenticationBuilderExtensions.cs","src/modules/account/mix.auth/Extensions/ServiceCollectionExtensions.cs","src/modules/account/mix.auth/Handlers/OAuthClientHandlers.cs","src/modules/account/mix.auth/Helpers/AuthExtensions.cs","src/modules/account/mix.auth/Helpers/JwtSecurityKeyHelper.cs","src/modules/account/mix.auth/Helpers/OAuth2ServerHelpers.cs","src/modules/account/mix.auth/Interfaces/IMessageSenders.cs","src/modules/account/mix.auth/Interfaces/IMixIdentityService.cs","src/modules/account/mix.auth/Interfaces/IOAuthClientService.cs","src/modules/account/mix.auth/Interfaces/IOAuthCodeStoreService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenRevocationService.cs","src/modules/account/mix.auth/Interfaces/IOAuthTokenService.cs","src/modules/account/mix.auth/Models/ExternalLoginResultModel.cs","src/modules/account/mix.auth/Models/ExternalLoginViewModel.cs","src/modules/account/mix.auth/Models/ForgotPasswordRequestModel.cs","src/modules/account/mix.auth/Models/LoginRequestModel.cs","src/modules/account/mix.auth/Models/LoginResponseModel.cs","src/modules/account/mix.auth/Models/Manage/ManageViewModels.cs","src/modules/account/mix.auth/Models/OAuth/CheckOAuthClientResult.cs","src/modules/account/mix.auth/Models/OAuth/OAuthCode.cs","src/modules/account/mix.auth/Models/OAuth/OAuthRequest.cs","src/modules/account/mix.auth/Models/OAuth/OAuthServerOptions.cs","src/modules/account/mix.auth/Models/OAuth/Requests/OAuthRequests.cs","src/modules/account/mix.auth/Models/OAuth/Responses/OAuthResponses.cs","src/modules/account/mix.auth/Models/ParsedExternalAccessToken.cs","src/modules/account/mix.auth/Models/RegisterExternalBindingModel.cs","src/modules/account/mix.auth/Models/RegisterRequestModel.cs","src/modules/account/mix.auth/Models/ResetPasswordRequestModel.cs","src/modules/account/mix.auth/Models/RoleBOModel.cs","src/modules/account/mix.auth/Models/SearchAccountQueryModel.cs","src/modules/account/mix.auth/Models/TokenResponseModel.cs","src/modules/account/mix.auth/Models/UserRoleModel.cs","src/modules/account/mix.auth/Services/MessageSenders.cs","src/modules/account/mix.auth/Services/MixIdentityService.cs","src/modules/account/mix.auth/Services/MixPermissionService.cs","src/modules/account/mix.auth/Services/OAuthClientService.cs","src/modules/account/mix.auth/Services/OAuthCodeStoreService.cs","src/modules/account/mix.auth/Services/OAuthTokenRevocationService.cs","src/modules/account/mix.auth/Services/OAuthTokenService.cs","src/modules/account/mix.auth/Services/TenantIdentityServices.cs","src/modules/account/mix.auth/ViewModels/OAuthClientViewModel.cs","src/modules/account/mix.auth/mix.auth.csproj","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor","src/modules/admin/mix.admin.ui/Components/AdminDashboard.razor.cs","src/modules/admin/mix.admin.ui/Components/AdminNavigationContext.cs","src/modules/admin/mix.admin.ui/Components/AiCompanionPanel.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor","src/modules/admin/mix.admin.ui/Components/AiCompanionSection.razor.js","src/modules/admin/mix.admin.ui/Components/AppEditorSection.razor","src/modules/admin/mix.admin.ui/Components/AppListSection.razor","src/modules/admin/mix.admin.ui/Components/AppearanceSection.razor","src/modules/admin/mix.admin.ui/Components/AuditLogSection.razor","src/modules/admin/mix.admin.ui/Components/AutomationSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor","src/modules/admin/mix.admin.ui/Components/ContentSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor","src/modules/admin/mix.admin.ui/Components/DashboardSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor","src/modules/admin/mix.admin.ui/Components/DataSourceSection.razor.cs","src/modules/admin/mix.admin.ui/Components/DomainListSection.razor","src/modules/admin/mix.admin.ui/Components/DynamicDataSection.razor","src/modules/admin/mix.admin.ui/Components/FileManagerSection.razor","src/modules/admin/mix.admin.ui/Components/GoalsSection.razor","src/modules/admin/mix.admin.ui/Components/IntegrationSection.razor","src/modules/admin/mix.admin.ui/Components/IssuesSection.razor","src/modules/admin/mix.admin.ui/Components/KanbanSection.razor","src/modules/admin/mix.admin.ui/Components/LanguageSection.razor","src/modules/admin/mix.admin.ui/Components/LocalizationSection.razor","src/modules/admin/mix.admin.ui/Components/MediaLibrarySection.razor","src/modules/admin/mix.admin.ui/Components/MenuBuilderSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor","src/modules/admin/mix.admin.ui/Components/ModulesSection.razor.cs","src/modules/admin/mix.admin.ui/Components/OAuthClientSection.razor","src/modules/admin/mix.admin.ui/Components/PageEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PageListSection.razor","src/modules/admin/mix.admin.ui/Components/PermissionListSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor","src/modules/admin/mix.admin.ui/Components/PostEditorSection.razor.cs","src/modules/admin/mix.admin.ui/Components/PostListSection.razor","src/modules/admin/mix.admin.ui/Components/PostListSection.razor.cs","src/modules/admin/mix.admin.ui/Components/ProfileSection.razor","src/modules/admin/mix.admin.ui/Components/QueueLogSection.razor","src/modules/admin/mix.admin.ui/Components/RoleManagerSection.razor","src/modules/admin/mix.admin.ui/Components/SchedulerSection.razor","src/modules/admin/mix.admin.ui/Components/SettingsSection.razor","src/modules/admin/mix.admin.ui/Components/TaxonomySection.razor","src/modules/admin/mix.admin.ui/Components/TenantEditorSection.razor","src/modules/admin/mix.admin.ui/Components/TenantListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeListSection.razor","src/modules/admin/mix.admin.ui/Components/ThemeStoreSection.razor","src/modules/admin/mix.admin.ui/Components/UserEditorSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor","src/modules/admin/mix.admin.ui/Components/UsersSection.razor.cs","src/modules/admin/mix.admin.ui/_Imports.razor","src/modules/admin/mix.admin.ui/mix.admin.ui.csproj","src/modules/ai/mix.ai.ui/Components/AiChatPage.razor","src/modules/ai/mix.ai.ui/Components/AiSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/ChatPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/McpSettingsPanel.razor","src/modules/ai/mix.ai.ui/Components/Chat/MessageItem.razor","src/modules/ai/mix.ai.ui/Components/Chat/ProviderModelPicker.razor","src/modules/ai/mix.ai.ui/Components/Preview/PreviewPanel.razor","src/modules/ai/mix.ai.ui/Models/AiSettingsModels.cs","src/modules/ai/mix.ai.ui/Models/ChatMessage.cs","src/modules/ai/mix.ai.ui/Models/ChatSession.cs","src/modules/ai/mix.ai.ui/Models/McpSettings.cs","src/modules/ai/mix.ai.ui/Services/AiChatService.cs","src/modules/ai/mix.ai.ui/Services/McpToolsService.cs","src/modules/ai/mix.ai.ui/_Imports.razor","src/modules/ai/mix.ai.ui/mix.ai.ui.csproj","src/modules/ai/mix.ai.ui/wwwroot/css/ai-chat.css","src/modules/ai/mix.ai/Agents/Base/AgentProcessResult.cs","src/modules/ai/mix.ai/Agents/Base/AgentRequest.cs","src/modules/ai/mix.ai/Agents/Base/BaseAgent.cs","src/modules/ai/mix.ai/Agents/Base/IAgent.cs","src/modules/ai/mix.ai/Agents/ChatAgent.cs","src/modules/ai/mix.ai/Agents/DatabaseAgent.cs","src/modules/ai/mix.ai/Agents/PlanningAgent.cs","src/modules/ai/mix.ai/Agents/RoutingAgent.cs","src/modules/ai/mix.ai/Agents/TaskAgent.cs","src/modules/ai/mix.ai/Background/LLMChatHostedService.cs","src/modules/ai/mix.ai/Background/RAGImportSubscriber.cs","src/modules/ai/mix.ai/Constants/AIHubMethods.cs","src/modules/ai/mix.ai/Constants/AIQueueTopics.cs","src/modules/ai/mix.ai/Constants/VectorDatabaseCollectionNames.cs","src/modules/ai/mix.ai/Controllers/AIChatController.cs","src/modules/ai/mix.ai/Controllers/AIGenerationController.cs","src/modules/ai/mix.ai/Controllers/RAGController.cs","src/modules/ai/mix.ai/Domain/Dtos/AskAIDto.cs","src/modules/ai/mix.ai/Domain/Dtos/GenerateValueDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchRequestDto.cs","src/modules/ai/mix.ai/Domain/Dtos/RAGSearchResponseDto.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIContentMessageViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AIPlanViewModel.cs","src/modules/ai/mix.ai/Domain/ViewModels/AgentProcessResultViewModel.cs","src/modules/ai/mix.ai/Hubs/AIContentEditorHub.cs","src/modules/ai/mix.ai/Hubs/LLMHub.cs","src/modules/ai/mix.ai/Models/IntentCacheModels.cs","src/modules/ai/mix.ai/Models/TaskModels.cs","src/modules/ai/mix.ai/Program.cs","src/modules/ai/mix.ai/Properties/launchSettings.json","src/modules/ai/mix.ai/Services/AISettingsService.cs","src/modules/ai/mix.ai/Services/Agents/ConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IConversationManager.cs","src/modules/ai/mix.ai/Services/Agents/IMcpClientService.cs","src/modules/ai/mix.ai/Services/Agents/ISystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/ITokenOptimizer.cs","src/modules/ai/mix.ai/Services/Agents/McpClientService.cs","src/modules/ai/mix.ai/Services/Agents/SystemPromptService.cs","src/modules/ai/mix.ai/Services/Agents/TokenOptimizer.cs","src/modules/ai/mix.ai/Services/ITaskStateService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIRequest.cs","src/modules/ai/mix.ai/Services/LLM/Generation/AIResponse.cs","src/modules/ai/mix.ai/Services/LLM/Generation/BaseGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GeminiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/GenerationModality.cs","src/modules/ai/mix.ai/Services/LLM/Generation/IProviderService.cs","src/modules/ai/mix.ai/Services/LLM/Generation/OpenAiGenerationService.cs","src/modules/ai/mix.ai/Services/LLM/LlmServiceFactory.cs","src/modules/ai/mix.ai/Services/MixAIService.cs","src/modules/ai/mix.ai/Services/RAG/ChunkingService.cs","src/modules/ai/mix.ai/Services/RAG/EmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/IEmbeddingService.cs","src/modules/ai/mix.ai/Services/RAG/ISemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/IVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/IndexingProgressReport.cs","src/modules/ai/mix.ai/Services/RAG/InstructionIndexingService.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagClient.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagInstructionSeeder.cs","src/modules/ai/mix.ai/Services/RAG/LightRag/LightRagModels.cs","src/modules/ai/mix.ai/Services/RAG/PostgresVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/QdrantVectorDbService.cs","src/modules/ai/mix.ai/Services/RAG/RAGContext.cs","src/modules/ai/mix.ai/Services/RAG/RAGProcessor.cs","src/modules/ai/mix.ai/Services/RAG/SearchResult.cs","src/modules/ai/mix.ai/Services/RAG/SemanticSearchService.cs","src/modules/ai/mix.ai/Services/RAG/VectorDbServiceFactory.cs","src/modules/ai/mix.ai/Services/RAG/VectorRecord.cs","src/modules/ai/mix.ai/Services/TaskService.cs","src/modules/ai/mix.ai/Services/TaskStateService.cs","src/modules/ai/mix.ai/Startup.cs","src/modules/ai/mix.ai/Tools/DatabaseQueryTool.cs","src/modules/ai/mix.ai/Tools/EchoTool.cs","src/modules/ai/mix.ai/Tools/FetchUrlTool.cs","src/modules/ai/mix.ai/Tools/IMixDbDataService.cs","src/modules/ai/mix.ai/Tools/MixDbDataTool.cs","src/modules/ai/mix.ai/Tools/MixDbSchemaTool.cs","src/modules/ai/mix.ai/Tools/MixModuleContentTool.cs","src/modules/ai/mix.ai/Tools/MixNavigationTool.cs","src/modules/ai/mix.ai/Tools/MixPageContentTool.cs","src/modules/ai/mix.ai/Tools/MixPageModuleTool.cs","src/modules/ai/mix.ai/Tools/MixPostContentTool.cs","src/modules/ai/mix.ai/Tools/MixTemplateTool.cs","src/modules/ai/mix.ai/Tools/NullMixDbDataService.cs","src/modules/ai/mix.ai/Tools/RAGSearchTool.cs","src/modules/ai/mix.ai/Tools/TextFileTool.cs","src/modules/ai/mix.ai/Tools/ToolDiscovery.cs","src/modules/ai/mix.ai/mix.ai.csproj","src/modules/cms/mix.content/Controllers/ModuleController.cs","src/modules/cms/mix.content/Controllers/PageController.cs","src/modules/cms/mix.content/Handlers/ModuleContentHandlers.cs","src/modules/cms/mix.content/Handlers/PageContentHandlers.cs","src/modules/cms/mix.content/Handlers/PostContentHandlers.cs","src/modules/cms/mix.content/Properties/launchSettings.json","src/modules/cms/mix.content/Services/CmsPageContentService.cs","src/modules/cms/mix.content/Services/ModuleContentService.cs","src/modules/cms/mix.content/Services/PostContentService.cs","src/modules/cms/mix.content/Startup.cs","src/modules/cms/mix.content/ViewModels/CmsPageContentViewModel.cs","src/modules/cms/mix.content/ViewModels/ModuleContentViewModel.cs","src/modules/cms/mix.content/ViewModels/PostContentViewModel.cs","src/modules/cms/mix.content/mix.content.csproj","src/modules/cms/mix.datasource/Controllers/DataSourceController.cs","src/modules/cms/mix.datasource/Controllers/DataSourceTableDataController.cs","src/modules/cms/mix.datasource/Cqrs/Commands/MigrateDatabaseCommand.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceDeleteCommandHandler.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/DataSourceHandlers.cs","src/modules/cms/mix.datasource/Cqrs/Handlers/MigrateDatabaseCommandHandler.cs","src/modules/cms/mix.datasource/Dtos/DataSourceTableDto.cs","src/modules/cms/mix.datasource/Dtos/SearchDataSourceTableRequestDto.cs","src/modules/cms/mix.datasource/Helpers/DataSourceDbHelper.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceMigrationService.cs","src/modules/cms/mix.datasource/Interfaces/IDataSourceTableDataService.cs","src/modules/cms/mix.datasource/Program.cs","src/modules/cms/mix.datasource/Properties/launchSettings.json","src/modules/cms/mix.datasource/Services/DataSourceMigrationService.cs","src/modules/cms/mix.datasource/Services/DataSourceTableDataService.cs","src/modules/cms/mix.datasource/Services/DatabaseCrudService.cs","src/modules/cms/mix.datasource/Services/MixDbDataService.cs","src/modules/cms/mix.datasource/Startup.cs","src/modules/cms/mix.datasource/ViewModels/DataSourceViewModel.cs","src/modules/cms/mix.datasource/mix.datasource.csproj","src/modules/installation/mix.installation.api/Controllers/InitCmsController.cs","src/modules/installation/mix.installation.api/Dockerfile","src/modules/installation/mix.installation.api/Program.cs","src/modules/installation/mix.installation.api/Properties/launchSettings.json","src/modules/installation/mix.installation.api/Startup.cs","src/modules/installation/mix.installation.api/appsettings.Development.json","src/modules/installation/mix.installation.api/appsettings.json","src/modules/installation/mix.installation.api/mix.installation.api.csproj","src/modules/installation/mix.installation.api/mix.installatoin.api.http","src/modules/installation/mix.installation.lib/Background/TemplateFileSubscriber.cs","src/modules/installation/mix.installation.lib/Commands/CreateDefaultTemplatesAndPagesCommand.cs","src/modules/installation/mix.installation.lib/DTOs/ImportOptionsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitCmsDto.cs","src/modules/installation/mix.installation.lib/DTOs/InitFullSiteDto.cs","src/modules/installation/mix.installation.lib/DTOs/SelectThemeDto.cs","src/modules/installation/mix.installation.lib/Handlers/CreateDefaultTemplatesAndPagesCommandHandler.cs","src/modules/installation/mix.installation.lib/Handlers/MixCultureHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixDbDatabaseHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixModuleHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageContentHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPageHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixPostHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixTemplateHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/MixThemeHandlers.cs","src/modules/installation/mix.installation.lib/Handlers/SiteInstallationHandlers.cs","src/modules/installation/mix.installation.lib/Import/ThemeImportContext.cs","src/modules/installation/mix.installation.lib/Interfaces/IInitCmsService.cs","src/modules/installation/mix.installation.lib/Interfaces/IMixThemeImportService.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Interfaces/IThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Models/SiteDataModel.cs","src/modules/installation/mix.installation.lib/Services/AISettingsService.cs","src/modules/installation/mix.installation.lib/Services/InitCmsService.cs","src/modules/installation/mix.installation.lib/Services/MixDbDatabaseService.cs","src/modules/installation/mix.installation.lib/Services/MixThemeImportService.cs","src/modules/installation/mix.installation.lib/Services/ModuleService.cs","src/modules/installation/mix.installation.lib/Services/PageService.cs","src/modules/installation/mix.installation.lib/Services/PostService.cs","src/modules/installation/mix.installation.lib/Services/Processors/BaseThemeImportProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/MixDbImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ModuleImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PageImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/PostImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/TemplateImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/Processors/ThemeImporterProcessor.cs","src/modules/installation/mix.installation.lib/Services/TemplateFileService.cs","src/modules/installation/mix.installation.lib/Services/TemplateService.cs","src/modules/installation/mix.installation.lib/Services/ThemeImportOrchestrator.cs","src/modules/installation/mix.installation.lib/Services/ThemeService.cs","src/modules/installation/mix.installation.lib/Startup.cs","src/modules/installation/mix.installation.lib/ViewModels/MixCultureViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixDbDatabaseViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixModuleViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageContentViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPageViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixPostViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixTemplateViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/MixThemeViewModel.cs","src/modules/installation/mix.installation.lib/ViewModels/SiteInstallationViewModel.cs","src/modules/installation/mix.installation.lib/mix.installation.lib.csproj","src/modules/installation/mix.installation.ui/Components/InstallationWizard.razor","src/modules/installation/mix.installation.ui/Components/Steps/AdminAccountStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/AiConfigStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/CompletionStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/TenantSetupStep.razor","src/modules/installation/mix.installation.ui/Components/Steps/ThemeImportCombinedStep.razor","src/modules/installation/mix.installation.ui/Models/WizardModels.cs","src/modules/installation/mix.installation.ui/_Imports.razor","src/modules/installation/mix.installation.ui/mix.installation.ui.csproj","src/modules/installation/mix.installation.ui/wwwroot/css/wizard.css"]},{"name":"src — monitoring","slug":"src-monitoring","files":["src/monitoring/grafana/provisioning/dashboards/dashboard.yml","src/monitoring/grafana/provisioning/dashboards/dotnet-aspnetcore.json","src/monitoring/grafana/provisioning/datasources/prometheus.yml","src/monitoring/prometheus/prometheus.yml"]},{"name":"src — platform","slug":"src-platform","files":["src/platform/common/mix-heart/README.md","src/platform/common/mix-heart/StyleCop.Cache","src/platform/common/mix-heart/git-reset-hard.bat","src/platform/common/mix-heart/nuget.config","src/platform/common/mix-heart/src/Constants/MixFileExtensions.cs","src/platform/common/mix-heart/src/Constants/MixHeartConstants.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/CacheInvalidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/UnitOfWorkBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Behaviors/ValidationBehavior.cs","src/platform/common/mix-heart/src/Cqrs/Commands/CreateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/DeleteCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveFieldsCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/SaveManyCommand.cs","src/platform/common/mix-heart/src/Cqrs/Commands/UpdateCommand.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/GenericViewModelHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Handlers/QueryHandlers.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/ICommand.cs","src/platform/common/mix-heart/src/Cqrs/Interfaces/IQuery.cs","src/platform/common/mix-heart/src/Cqrs/Notifications/MixEntityChangedNotification.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetByIdQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetListQuery.cs","src/platform/common/mix-heart/src/Cqrs/Queries/GetPagingQuery.cs","src/platform/common/mix-heart/src/Cqrs/ServiceCollectionExtensions.Cqrs.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCache.cs","src/platform/common/mix-heart/src/Entities/Cache/MixCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/MySqlCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/PostgresCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqlServerCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Cache/SqliteCacheDbContext.cs","src/platform/common/mix-heart/src/Entities/Entity.cs","src/platform/common/mix-heart/src/Entities/EntityBase.cs","src/platform/common/mix-heart/src/Entities/IEntity.cs","src/platform/common/mix-heart/src/Entities/IHasPrimaryKey.cs","src/platform/common/mix-heart/src/Entities/SimpleEntityBase.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MSSQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/MySQL/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/POSTGRES/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/EntitiyConfigurations/SQLITE/MixCacheConfiguration.cs","src/platform/common/mix-heart/src/Enums/ExpressionMethod.cs","src/platform/common/mix-heart/src/Enums/MixCacheMode.cs","src/platform/common/mix-heart/src/Enums/MixCacheStatus.cs","src/platform/common/mix-heart/src/Enums/MixContentStatus.cs","src/platform/common/mix-heart/src/Enums/MixDatabaseProvider.cs","src/platform/common/mix-heart/src/Enums/MixErrorStatus.cs","src/platform/common/mix-heart/src/Enums/SortDirection.cs","src/platform/common/mix-heart/src/Enums/ViewModelAction.cs","src/platform/common/mix-heart/src/Exceptions/EntityNotFoundException.cs","src/platform/common/mix-heart/src/Exceptions/MixException.cs","src/platform/common/mix-heart/src/Extensions/ExpressionExtensions.cs","src/platform/common/mix-heart/src/Extensions/IQueryableExtensions.cs","src/platform/common/mix-heart/src/Extensions/ModelBuilderExtensions.cs","src/platform/common/mix-heart/src/Extensions/ServiceExtension.cs","src/platform/common/mix-heart/src/Extensions/StringExtension.cs","src/platform/common/mix-heart/src/Factories/CacheEngineFactory.cs","src/platform/common/mix-heart/src/Helpers/AesEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/NewtonSoftHelper.cs","src/platform/common/mix-heart/src/Helpers/RSAEncryptionHelper.cs","src/platform/common/mix-heart/src/Helpers/ReflectionHelper.cs","src/platform/common/mix-heart/src/Helpers/ViewModelHelper.cs","src/platform/common/mix-heart/src/Interfaces/IDitributedCacheClient.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/20250211091811_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/MySql/MySqlCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/20250211091716_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Postgres/PostgresCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/20250211091559_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/SqlServer/SqlServerCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.Designer.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/20250211091849_Init.cs","src/platform/common/mix-heart/src/Migrations/Cache/Sqlite/SqliteCacheDbContextModelSnapshot.cs","src/platform/common/mix-heart/src/Model/EntityPropertyModel.cs","src/platform/common/mix-heart/src/Model/FileModel.cs","src/platform/common/mix-heart/src/Model/MixHeartConfigurationModel.cs","src/platform/common/mix-heart/src/Model/MixSortByColumn.cs","src/platform/common/mix-heart/src/Model/ModifiedEntityModel.cs","src/platform/common/mix-heart/src/Model/PagingModel.cs","src/platform/common/mix-heart/src/Model/PagingResponseModel.cs","src/platform/common/mix-heart/src/Model/RedisCacheConfigurationModel.cs","src/platform/common/mix-heart/src/Model/SaveResult.cs","src/platform/common/mix-heart/src/Repository/EntityRepository.cs","src/platform/common/mix-heart/src/Repository/IRepositoryBase.cs","src/platform/common/mix-heart/src/Repository/QueryRepository.cs","src/platform/common/mix-heart/src/Repository/Repository.cs","src/platform/common/mix-heart/src/Repository/RepositoryBase.cs","src/platform/common/mix-heart/src/Repository/ViewQueryRepository.cs","src/platform/common/mix-heart/src/ServiceCollectionExtensions.cs","src/platform/common/mix-heart/src/Services/AppSettingServiceBase.cs","src/platform/common/mix-heart/src/Services/ConfigurationServiceBase.cs","src/platform/common/mix-heart/src/Services/HybridCacheClient.cs","src/platform/common/mix-heart/src/Services/MixCacheService.cs","src/platform/common/mix-heart/src/Services/MixDatabaseCacheClient.cs","src/platform/common/mix-heart/src/Services/MixFileHelper.cs","src/platform/common/mix-heart/src/Services/MixStaticFileCacheClient.cs","src/platform/common/mix-heart/src/Services/RedisCacheClient.cs","src/platform/common/mix-heart/src/Services/SingletonService.cs","src/platform/common/mix-heart/src/UnitOfWork/GenericUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/IUnitOfWorkInfo.cs","src/platform/common/mix-heart/src/UnitOfWork/UnitOfWorkInfo.cs","src/platform/common/mix-heart/src/ViewModel/IHeartViewModel.cs","src/platform/common/mix-heart/src/ViewModel/QueryViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/SimpleViewModelBase.cs","src/platform/common/mix-heart/src/ViewModel/ViewModelBase.cs","src/platform/common/mix-heart/src/mix.heart.csproj","src/platform/common/mix-heart/src/mix.heart.csproj.DotSettings","src/platform/common/mix-heart/src/wwwroot/default-mixcontent/setting-files/mix-heart.json","src/platform/common/mix-heart/wiki/mix-heart.md","src/platform/common/mix.constant/Constants/BaseUrls.cs","src/platform/common/mix.constant/Constants/MixAppConfigFilePaths.cs","src/platform/common/mix.constant/Constants/MixAppSettingKeywords.cs","src/platform/common/mix.constant/Constants/MixAppSettingsSection.cs","src/platform/common/mix.constant/Constants/MixAuthConfigurations.cs","src/platform/common/mix.constant/Constants/MixConfigurationNames.cs","src/platform/common/mix.constant/Constants/MixConfigurations.cs","src/platform/common/mix.constant/Constants/MixConstants.cs","src/platform/common/mix.constant/Constants/MixCorsPolicies.cs","src/platform/common/mix.constant/Constants/MixDbCommandQueueActions.cs","src/platform/common/mix.constant/Constants/MixDbTableNames.cs","src/platform/common/mix.constant/Constants/MixDefaultThemes.cs","src/platform/common/mix.constant/Constants/MixDefaultValues.cs","src/platform/common/mix.constant/Constants/MixEncryptKeywords.cs","src/platform/common/mix.constant/Constants/MixEnvironments.cs","src/platform/common/mix.constant/Constants/MixFolders.cs","src/platform/common/mix.constant/Constants/MixModuleNames.cs","src/platform/common/mix.constant/Constants/MixQueryColumnName.cs","src/platform/common/mix.constant/Constants/MixQueueActions.cs","src/platform/common/mix.constant/Constants/MixQueueTopics.cs","src/platform/common/mix.constant/Constants/MixRepoDb.cs","src/platform/common/mix.constant/Constants/MixRequestQueryKeywords.cs","src/platform/common/mix.constant/Constants/MixTemplateFolders.cs","src/platform/common/mix.constant/Constants/MixThemePackageConstants.cs","src/platform/common/mix.constant/Enums/HttpRequestMethod.cs","src/platform/common/mix.constant/Enums/InitStep.cs","src/platform/common/mix.constant/Enums/MixAppConfigEnums.cs","src/platform/common/mix.constant/Enums/MixCalculateOperatorKind.cs","src/platform/common/mix.constant/Enums/MixConjunction.cs","src/platform/common/mix.constant/Enums/MixContentType.cs","src/platform/common/mix.constant/Enums/MixDataType.cs","src/platform/common/mix.constant/Enums/MixDatabaseNamingConvention.cs","src/platform/common/mix.constant/Enums/MixDbCommandQueueAction.cs","src/platform/common/mix.constant/Enums/MixDbDataAssociationType.cs","src/platform/common/mix.constant/Enums/MixDbTableParentType.cs","src/platform/common/mix.constant/Enums/MixDbTableRelationshipType.cs","src/platform/common/mix.constant/Enums/MixDbTableType.cs","src/platform/common/mix.constant/Enums/MixEncryptType.cs","src/platform/common/mix.constant/Enums/MixExpressionRule.cs","src/platform/common/mix.constant/Enums/MixLogicalOperatorKind.cs","src/platform/common/mix.constant/Enums/MixMenuItemType.cs","src/platform/common/mix.constant/Enums/MixModuleType.cs","src/platform/common/mix.constant/Enums/MixMvcViewMode.cs","src/platform/common/mix.constant/Enums/MixPageType.cs","src/platform/common/mix.constant/Enums/MixQueueMessageLogState.cs","src/platform/common/mix.constant/Enums/MixQueueProvider.cs","src/platform/common/mix.constant/Enums/MixResponseKey.cs","src/platform/common/mix.constant/Enums/MixResponseStatus.cs","src/platform/common/mix.constant/Enums/MixRestAction.cs","src/platform/common/mix.constant/Enums/MixRestStatus.cs","src/platform/common/mix.constant/Enums/MixStorageProvider.cs","src/platform/common/mix.constant/Enums/MixStructureType.cs","src/platform/common/mix.constant/Enums/MixTemplateFolderType.cs","src/platform/common/mix.constant/Enums/MixUrlAliasType.cs","src/platform/common/mix.constant/Enums/MixUserStatus.cs","src/platform/common/mix.constant/mix.constant.csproj","src/platform/common/mix.shared/Base/ViewModel/TenantDataViewModelBase.cs","src/platform/common/mix.shared/Dtos/AlterColumnDto.cs","src/platform/common/mix.shared/Dtos/FilterContentRequestDto.cs","src/platform/common/mix.shared/Dtos/GetIdsDto.cs","src/platform/common/mix.shared/Dtos/MixDbCollumnDto.cs","src/platform/common/mix.shared/Dtos/MixQueryField.cs","src/platform/common/mix.shared/Dtos/SearchMixDbRequestDto.cs","src/platform/common/mix.shared/Dtos/SearchQueryField.cs","src/platform/common/mix.shared/Dtos/SearchRequestDto.cs","src/platform/common/mix.shared/Enums/ApplicationType.cs","src/platform/common/mix.shared/Extensions/ConfigurationBuilderExtensions.cs","src/platform/common/mix.shared/Extensions/ConfigurationExtension.cs","src/platform/common/mix.shared/Extensions/CorsExtensions.cs","src/platform/common/mix.shared/Extensions/JObjectExtensions.cs","src/platform/common/mix.shared/Extensions/MiddlewareExtensions.cs","src/platform/common/mix.shared/Extensions/ServiceCollectionExtensions.cs","src/platform/common/mix.shared/Extensions/SessonExtensions.cs","src/platform/common/mix.shared/Extensions/SwaggerExtensions.cs","src/platform/common/mix.shared/Helpers/MixAssemblyFinder.cs","src/platform/common/mix.shared/Helpers/MixCmsHelper.cs","src/platform/common/mix.shared/Helpers/MixHelper.cs","src/platform/common/mix.shared/Helpers/SEOHelper.cs","src/platform/common/mix.shared/Interfaces/IGlobalConfigurations.cs","src/platform/common/mix.shared/Interfaces/IStartupService.cs","src/platform/common/mix.shared/Middleware/InitRedirectMiddleware.cs","src/platform/common/mix.shared/MixAssemblyFinder.cs","src/platform/common/mix.shared/Models/ApiResponseModel.cs","src/platform/common/mix.shared/Models/ColumnConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AIConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/AgentModel.cs","src/platform/common/mix.shared/Models/Configurations/AppSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/DatabaseConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/EndpointConfigurationsModel.cs","src/platform/common/mix.shared/Models/Configurations/GlobalSettingsModel.cs","src/platform/common/mix.shared/Models/Configurations/GoogleSettingModel.cs","src/platform/common/mix.shared/Models/Configurations/LLMCredentialModels.cs","src/platform/common/mix.shared/Models/Configurations/LogConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixAuthenticationConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/MixRateLimitConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/OcelotConfigurations.cs","src/platform/common/mix.shared/Models/Configurations/PortalConfigurationModel.cs","src/platform/common/mix.shared/Models/ConnectionStrings.cs","src/platform/common/mix.shared/Models/DataRelationshipModel.cs","src/platform/common/mix.shared/Models/HttpRequestModel.cs","src/platform/common/mix.shared/Models/MixCultureModel.cs","src/platform/common/mix.shared/Models/MixDbAuditLogModel.cs","src/platform/common/mix.shared/Models/PagingRequestModel.cs","src/platform/common/mix.shared/Models/SearchMixDbRequestModel.cs","src/platform/common/mix.shared/Models/SmtpConfiguration.cs","src/platform/common/mix.shared/Services/HttpService.cs","src/platform/common/mix.shared/Services/JsonConfigurationServiceBase.cs","src/platform/common/mix.shared/Services/JsonConfigurationsServiceBase.cs","src/platform/common/mix.shared/mix.shared.csproj","src/platform/common/mix.ui.shared/Catalog/AiProviderCatalog.cs","src/platform/common/mix.ui.shared/Components/AI/LlmCredentialsEditor.razor","src/platform/common/mix.ui.shared/Models/AiCredentialEntry.cs","src/platform/common/mix.ui.shared/_Imports.razor","src/platform/common/mix.ui.shared/mix.ui.shared.csproj","src/platform/common/mix.ui.shared/wwwroot/css/llm-editor.css","src/platform/common/mixcore.aspire.service/ApiKey/ApiKeyAuthenticationHandler.cs","src/platform/common/mixcore.aspire.service/Extensions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdForwardedHeadersStartupFilter.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdOptions.cs","src/platform/common/mixcore.aspire.service/Linkerd/LinkerdShutdownService.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountOptions.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenCache.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandler.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerFilter.cs","src/platform/common/mixcore.aspire.service/ServiceAccount/ServiceAccountTokenHandlerOptions.cs","src/platform/common/mixcore.aspire.service/mixcore.aspire.service.csproj","src/platform/communication/mix.mqtt.lib/Controllers/MqttController.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/Logger_Samples.cs","src/platform/communication/mix.mqtt.lib/Diagnostics/PackageInspection_Samples.cs","src/platform/communication/mix.mqtt.lib/Extensions/StartupExtensions.cs","src/platform/communication/mix.mqtt.lib/Helpers/CertificateHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/MqttHelper.cs","src/platform/communication/mix.mqtt.lib/Helpers/ObjectExtensions.cs","src/platform/communication/mix.mqtt.lib/Models/AppSettingsProvider.cs","src/platform/communication/mix.mqtt.lib/Models/BrokerHostSettings.cs","src/platform/communication/mix.mqtt.lib/Models/ClientSettings.cs","src/platform/communication/mix.mqtt.lib/Models/MQTTSetting.cs","src/platform/communication/mix.mqtt.lib/RpcClient/RpcClient_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_ASP_NET_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Diagnostics_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Intercepting_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Retained_Messages_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_Simple_Samples.cs","src/platform/communication/mix.mqtt.lib/Server/Server_TLS_Samples.cs","src/platform/communication/mix.mqtt.lib/Service/MqttServerHostedService.cs","src/platform/communication/mix.mqtt.lib/mix.mqtt.lib.csproj","src/platform/communication/mix.notification/Interfaces/IMixEdmService.cs","src/platform/communication/mix.notification/Services/MixEdmService.cs","src/platform/communication/mix.notification/mix.notification.csproj","src/platform/communication/mix.queue/Attributes/GeneratePublisherAttribute.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Azure/AzureQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Google/GoogleQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Kafka/KafkaQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/GrpcStreamingService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqGrpcService.cs","src/platform/communication/mix.queue/Engines/Mix/MixMqStartupService.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueuePublisher.cs","src/platform/communication/mix.queue/Engines/Mix/MixQueueSubscriber.cs","src/platform/communication/mix.queue/Engines/Mix/Readme.md","src/platform/communication/mix.queue/Engines/Mqtt/MqttPublisher.cs","src/platform/communication/mix.queue/Engines/Mqtt/MqttSubscriber.cs","src/platform/communication/mix.queue/Engines/PublisherBase.cs","src/platform/communication/mix.queue/Engines/QueueEngineFactory.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQPublisher.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitMQSubscriber.cs","src/platform/communication/mix.queue/Engines/RabitMq/RabbitModelPooledObjectPolicy.cs","src/platform/communication/mix.queue/Engines/SubscriberBase.cs","src/platform/communication/mix.queue/Extensions/QueueServiceCollectionExtension.cs","src/platform/communication/mix.queue/Interfaces/IMemoryQueueService.cs","src/platform/communication/mix.queue/Interfaces/IQueuePublisher.cs","src/platform/communication/mix.queue/Interfaces/IQueueSubscriber.cs","src/platform/communication/mix.queue/Models/GrpcChannelModel.cs","src/platform/communication/mix.queue/Models/MessageQueueModel.cs","src/platform/communication/mix.queue/Models/MessageQueueSettings.cs","src/platform/communication/mix.queue/Models/MixQueueMessages.cs","src/platform/communication/mix.queue/Models/MixSubscribtionModel.cs","src/platform/communication/mix.queue/Models/MixTopicModel.cs","src/platform/communication/mix.queue/Models/QueueSetting/AzureQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/GoogleQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/IQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/KafkaQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/MixQueueSetting.cs","src/platform/communication/mix.queue/Models/QueueSetting/RabitMqQueueSetting.cs","src/platform/communication/mix.queue/Protos/mixmq.proto","src/platform/communication/mix.queue/Readme.md","src/platform/communication/mix.queue/Services/MemoryQueueService.cs","src/platform/communication/mix.queue/Services/MessageQueueSettingsService.cs","src/platform/communication/mix.queue/mix.queue.csproj","src/platform/communication/mix.signalr/Constants/HubEndpoints.cs","src/platform/communication/mix.signalr/Constants/HubMethods.cs","src/platform/communication/mix.signalr/Enums/MessageAction.cs","src/platform/communication/mix.signalr/Enums/MessageType.cs","src/platform/communication/mix.signalr/HubClients/BaseHubClientService.cs","src/platform/communication/mix.signalr/HubClients/PortalHubClientService.cs","src/platform/communication/mix.signalr/Hubs/BaseSignalrHub.cs","src/platform/communication/mix.signalr/Hubs/PortalHub.cs","src/platform/communication/mix.signalr/Interfaces/IHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/ILogStreamHubClientService.cs","src/platform/communication/mix.signalr/Interfaces/IMixDbCommandHubClientService.cs","src/platform/communication/mix.signalr/Models/HubUserModel.cs","src/platform/communication/mix.signalr/Models/SignalRMessageModel.cs","src/platform/communication/mix.signalr/mix.signalr.csproj","src/platform/mix.database/Base/AccountEntityBaseConfiguration.cs","src/platform/mix.database/Base/BaseDbContext.cs","src/platform/mix.database/Base/Cms/AssociationBaseConfiguration.cs","src/platform/mix.database/Base/Cms/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityBaseConfiguration.cs","src/platform/mix.database/Base/Cms/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/Base/IDatabaseConstants.cs","src/platform/mix.database/Base/Service/TenantServiceBase.cs","src/platform/mix.database/Base/_CassandraDatabaseConstants.cs","src/platform/mix.database/Base/_MySqlDatabaseConstants.cs","src/platform/mix.database/Base/_PostgresSqlDatabaseConstants.cs","src/platform/mix.database/Base/_SqlServerDatabaseConstants.cs","src/platform/mix.database/Base/_SqliteDatabaseConstants.cs","src/platform/mix.database/Constants/MixDbDatabaseNames.cs","src/platform/mix.database/DesignTimeFactories/DesignTimeConnectionStrings.cs","src/platform/mix.database/DesignTimeFactories/MixCmsContextDesignTimeFactories.cs","src/platform/mix.database/Entities/AI/AIDatabaseNames.cs","src/platform/mix.database/Entities/AI/AIDbContext.cs","src/platform/mix.database/Entities/AI/AIPlan.cs","src/platform/mix.database/Entities/AI/AIPlanEnums.cs","src/platform/mix.database/Entities/AI/AIPlanStep.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanConfiguration.cs","src/platform/mix.database/Entities/AI/EntityConfigurations/AIPlanStepConfiguration.cs","src/platform/mix.database/Entities/Account/AspNetRoleClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserClaims.cs","src/platform/mix.database/Entities/Account/AspNetUserLogins.cs","src/platform/mix.database/Entities/Account/AspNetUserRoles.cs","src/platform/mix.database/Entities/Account/AspNetUserTokens.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetRoleClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserClaimsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserLoginsConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/AspNetUserTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixRolesConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUserTenantConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/MixUsersConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthClientConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/OAuthTokenConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/RefreshTokensConfiguration.cs","src/platform/mix.database/Entities/Account/EntityConfigurations/SysMixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Account/MixPermission.cs","src/platform/mix.database/Entities/Account/MixRole.cs","src/platform/mix.database/Entities/Account/MixUser.cs","src/platform/mix.database/Entities/Account/MixUserTenant.cs","src/platform/mix.database/Entities/Account/OAuthClient.cs","src/platform/mix.database/Entities/Account/OAuthToken.cs","src/platform/mix.database/Entities/Account/RefreshTokens.cs","src/platform/mix.database/Entities/Account/SysMixDbDataAssociation.cs","src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs","src/platform/mix.database/Entities/Account/_MySqlAccountContext.cs","src/platform/mix.database/Entities/Account/_PostgresSQLAccountContext.cs","src/platform/mix.database/Entities/Account/_SqlServerAccountContext.cs","src/platform/mix.database/Entities/Account/_SqliteAccountContext.cs","src/platform/mix.database/Entities/AuditLog/AuditLog.cs","src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs","src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs","src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs","src/platform/mix.database/Entities/Base/AssociationBase.cs","src/platform/mix.database/Entities/Base/ExtraColumnMultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualSEOContentBase.cs","src/platform/mix.database/Entities/Base/MultilingualUniqueNameContentBase.cs","src/platform/mix.database/Entities/Base/TenantEntityBase.cs","src/platform/mix.database/Entities/Base/TenantEntityUniqueNameBase.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixApplicationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixConfigurationContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixContributorConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixCultureConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbColumnConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbDatabaseConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDbTableRelationshipConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDiscussionConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixDomainConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixLanguageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixMediaConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModuleDataConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixModulePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPageModuleConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPagePostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostContentConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixPostPostConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixTenantConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixThemeConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixUrlAliasConfiguration.cs","src/platform/mix.database/Entities/Cms/EntityConfigurations/MixViewTemplateConfiguration.cs","src/platform/mix.database/Entities/Cms/MixApplication.cs","src/platform/mix.database/Entities/Cms/MixConfiguration.cs","src/platform/mix.database/Entities/Cms/MixConfigurationContent.cs","src/platform/mix.database/Entities/Cms/MixContributor.cs","src/platform/mix.database/Entities/Cms/MixCulture.cs","src/platform/mix.database/Entities/Cms/MixDbColumn.cs","src/platform/mix.database/Entities/Cms/MixDbDataAssociation.cs","src/platform/mix.database/Entities/Cms/MixDbDatabase.cs","src/platform/mix.database/Entities/Cms/MixDbTable.cs","src/platform/mix.database/Entities/Cms/MixDbTableRelationship.cs","src/platform/mix.database/Entities/Cms/MixDiscussion.cs","src/platform/mix.database/Entities/Cms/MixDomain.cs","src/platform/mix.database/Entities/Cms/MixLanguage.cs","src/platform/mix.database/Entities/Cms/MixLanguageContent.cs","src/platform/mix.database/Entities/Cms/MixMedia.cs","src/platform/mix.database/Entities/Cms/MixModule.cs","src/platform/mix.database/Entities/Cms/MixModuleContent.cs","src/platform/mix.database/Entities/Cms/MixModuleData.cs","src/platform/mix.database/Entities/Cms/MixModulePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPage.cs","src/platform/mix.database/Entities/Cms/MixPageContent.cs","src/platform/mix.database/Entities/Cms/MixPageModuleAssociation.cs","src/platform/mix.database/Entities/Cms/MixPagePostAssociation.cs","src/platform/mix.database/Entities/Cms/MixPost.cs","src/platform/mix.database/Entities/Cms/MixPostContent.cs","src/platform/mix.database/Entities/Cms/MixPostPostAssociation.cs","src/platform/mix.database/Entities/Cms/MixTemplate.cs","src/platform/mix.database/Entities/Cms/MixTenant.cs","src/platform/mix.database/Entities/Cms/MixTheme.cs","src/platform/mix.database/Entities/Cms/MixUrlAlias.cs","src/platform/mix.database/Entities/Cms/_MixCmsContext.cs","src/platform/mix.database/Entities/Cms/_MySqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_PostgresqlMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqlServerMixCmsContext.cs","src/platform/mix.database/Entities/Cms/_SqliteMixCmsContext.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAccess.cs","src/platform/mix.database/Entities/Compliance/BreakGlassAudit.cs","src/platform/mix.database/Entities/Compliance/ConsentEvent.cs","src/platform/mix.database/Entities/Compliance/DataFieldMetadata.cs","src/platform/mix.database/Entities/Compliance/DataProtectionImpactAssessment.cs","src/platform/mix.database/Entities/Compliance/DpiaMitigation.cs","src/platform/mix.database/Entities/Compliance/DpiaRisk.cs","src/platform/mix.database/Entities/Compliance/DsrRequest.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAccessConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/BreakGlassAuditConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/ConsentEventConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataFieldMetadataConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DataProtectionImpactAssessmentConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaMitigationConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DpiaRiskConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/DsrRequestConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/PurposeConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionExecutionConfiguration.cs","src/platform/mix.database/Entities/Compliance/EntityConfigurations/RetentionPolicyConfiguration.cs","src/platform/mix.database/Entities/Compliance/Purpose.cs","src/platform/mix.database/Entities/Compliance/RetentionExecution.cs","src/platform/mix.database/Entities/Compliance/RetentionPolicy.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MetadataContentAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbDataAssociationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixDbEventSubscriberConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixMenuItemConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/MixNavigationConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PermissionEndpointConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/PortalMenuConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserDataConfiguration.cs","src/platform/mix.database/Entities/MixDb/EntityConfigurations/UserPermissionConfiguration.cs","src/platform/mix.database/Entities/MixDb/MixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/MixDbEventSubscriber.cs","src/platform/mix.database/Entities/MixDb/MixMenuItem.cs","src/platform/mix.database/Entities/MixDb/MixMetadata.cs","src/platform/mix.database/Entities/MixDb/MixMetadataContentAssociation.cs","src/platform/mix.database/Entities/MixDb/MixNavigation.cs","src/platform/mix.database/Entities/MixDb/MixPermission.cs","src/platform/mix.database/Entities/MixDb/MixPermissionEndpoint.cs","src/platform/mix.database/Entities/MixDb/MixPortalMenu.cs","src/platform/mix.database/Entities/MixDb/MixUserData.cs","src/platform/mix.database/Entities/MixDb/MixUserPermission.cs","src/platform/mix.database/Entities/MixDb/MySqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/PostgresSqlMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqlServerMixDbDbContext.cs","src/platform/mix.database/Entities/MixDb/SqliteMixDbDbContext.cs","src/platform/mix.database/Entities/Quartz/QrtzBlobTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzCalendar.cs","src/platform/mix.database/Entities/Quartz/QrtzCronTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzFiredTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzJobDetail.cs","src/platform/mix.database/Entities/Quartz/QrtzLock.cs","src/platform/mix.database/Entities/Quartz/QrtzPausedTriggerGrp.cs","src/platform/mix.database/Entities/Quartz/QrtzSchedulerState.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpleTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzSimpropTrigger.cs","src/platform/mix.database/Entities/Quartz/QrtzTrigger.cs","src/platform/mix.database/Entities/Quartz/_MySqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_PostgresSqlQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_QuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SQliteQuartzDbContext.cs","src/platform/mix.database/Entities/Quartz/_SqlServerQuartzDbContext.cs","src/platform/mix.database/Entities/Queue/EntityConfigurations/MixQueueMessageConfiguration.cs","src/platform/mix.database/Entities/Queue/MixQueueDbContext.cs","src/platform/mix.database/Entities/Queue/MixQueueMessageLog.cs","src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs","src/platform/mix.database/Entities/QueueLog/QueueLog.cs","src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs","src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs","src/platform/mix.database/Entities/Settings/GlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/MixGlobalSetting.cs","src/platform/mix.database/Entities/Settings/MySqlGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/PostgresGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqlServerGlobalSettingContext.cs","src/platform/mix.database/Entities/Settings/SqliteGlobalSettingContext.cs","src/platform/mix.database/EntityConfigurations/Base/AssociationBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/EntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/ExtraColumnMultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualSEOContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/MultilingualUniqueNameContentBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/SimpleEntityBaseCrossProviderConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Base/TenantEntityUniqueNameBaseConfiguration.cs","src/platform/mix.database/EntityConfigurations/Converters/EncryptedStringConverter.cs","src/platform/mix.database/EntityConfigurations/Converters/StringToJArrayConverter.cs","src/platform/mix.database/EntityConfigurations/MYSQL/Quartz/MySqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/POSTGRES/Quartz/PostgresSqlQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/PropertyBuilderExtensions.cs","src/platform/mix.database/EntityConfigurations/SQLITE/Quartz/SQLiteQuartzConfigurations.cs","src/platform/mix.database/EntityConfigurations/SQLSERVER/Quartz/SqlServerQuartzConfigurations.cs","src/platform/mix.database/Extensions/EntityTypeBuilderExtensions.cs","src/platform/mix.database/Extensions/ModelBuilderExtensions.cs","src/platform/mix.database/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.Designer.cs","src/platform/mix.database/Migrations/Account/MySql/20251130054955_Init.cs","src/platform/mix.database/Migrations/Account/MySql/MySqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Postgres/20250218083344_Init.cs","src/platform/mix.database/Migrations/Account/Postgres/PostgresSqlAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.Designer.cs","src/platform/mix.database/Migrations/Account/SqlServer/20260316062100_Init.cs","src/platform/mix.database/Migrations/Account/SqlServer/SqlServerAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.Designer.cs","src/platform/mix.database/Migrations/Account/Sqlite/20250218083818_Init.cs","src/platform/mix.database/Migrations/Account/Sqlite/SqliteAccountContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250304082555_Init.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/MySql/20250903055727_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/MySql/MySqlAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250331040444_Init.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/20250903055152_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Postgres/PostgresAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063031_Init.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/20260316063225_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/SqlServer/SqlServerAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250304082331_Init.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.Designer.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/20250903055822_ApplyGDPR.cs","src/platform/mix.database/Migrations/AuditLog/Sqlite/SqliteAuditLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.Designer.cs","src/platform/mix.database/Migrations/Cms/Account/20250602074541_RefactorMixDb.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/MySql/20260310091341_Init.cs","src/platform/mix.database/Migrations/Cms/MySql/MySqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/Postgres/20260310091244_Init.cs","src/platform/mix.database/Migrations/Cms/Postgres/PostgresqlMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.Designer.cs","src/platform/mix.database/Migrations/Cms/SqlServer/20260316065301_Init.cs","src/platform/mix.database/Migrations/Cms/SqlServer/SqlServerMixCmsContextModelSnapshot.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.Designer.cs","src/platform/mix.database/Migrations/MixQueueDb/20230827051050_InitQueue.cs","src/platform/mix.database/Migrations/MixQueueDb/MixQueueDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/MySql/20220415032945_Init.cs","src/platform/mix.database/Migrations/Quartz/MySql/MySQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20220413083449_Init.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Postgres/20250129124906_Upd.cs","src/platform/mix.database/Migrations/Quartz/Postgres/PostgresSQLQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/20260316063618_Init.cs","src/platform/mix.database/Migrations/Quartz/SqlServer/SQLServerQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20220415033548_Init.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.Designer.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/20250125094343_Upd.cs","src/platform/mix.database/Migrations/Quartz/Sqlite/SQLiteQuartzDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/MySql/20250304083310_Init.cs","src/platform/mix.database/Migrations/QueueLog/MySql/MySqlQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/20250304083219_Init.cs","src/platform/mix.database/Migrations/QueueLog/Postgres/PostgresQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/20260316063320_Init.cs","src/platform/mix.database/Migrations/QueueLog/SqlServer/SqlServerQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.Designer.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/20250304083407_Init.cs","src/platform/mix.database/Migrations/QueueLog/Sqlite/SqlITEQueueLogDbContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Extensions/GlobalSettingMigrationExtensions.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/MySql/20251129144355_Init.cs","src/platform/mix.database/Migrations/Settings/MySql/MySqlGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Postgres/20250130061042_Init.cs","src/platform/mix.database/Migrations/Settings/Postgres/PostgresGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/SqlServer/20250130063406_Init.cs","src/platform/mix.database/Migrations/Settings/SqlServer/SqlServerGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.Designer.cs","src/platform/mix.database/Migrations/Settings/Sqlite/20250130060350_Init.cs","src/platform/mix.database/Migrations/Settings/Sqlite/SqliteGlobalSettingContextModelSnapshot.cs","src/platform/mix.database/Models/MixTenantSystemModel.cs","src/platform/mix.database/Properties/launchSettings.json","src/platform/mix.database/Readme.md","src/platform/mix.database/Services/AppSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/AuthConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/DatabaseService.cs","src/platform/mix.database/Services/MixGlobalSettings/EnvironmentService.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingServiceBase.cs","src/platform/mix.database/Services/MixGlobalSettings/GlobalSettingsService.cs","src/platform/mix.database/Services/MixGlobalSettings/IPSecurityConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixEndpointService.cs","src/platform/mix.database/Services/MixGlobalSettings/MixHeartConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/PortalConfigService.cs","src/platform/mix.database/Services/MixGlobalSettings/SmtpConfigService.cs","src/platform/mix.database/TokenTypeEnum.cs","src/platform/mix.database/mix.database.csproj","src/platform/mix.database/wwwroot/default-mixcontent/setting-files/databases.json","src/platform/mix.lib/Controllers/CrudControllerBase.cs","src/platform/mix.lib/Controllers/ReadOnlyControllerBase.cs","src/platform/mix.lib/Controllers/TenantControllerBase.cs","src/platform/mix.lib/Extensions/ServiceCollectionExtensions.cs","src/platform/mix.lib/Helpers/DataTypeHelper.cs","src/platform/mix.lib/Interfaces/ICrudService.cs","src/platform/mix.lib/Interfaces/ITenantService.cs","src/platform/mix.lib/Models/SearchQuery.cs","src/platform/mix.lib/Notifications/QueueEventNotificationHandler.cs","src/platform/mix.lib/Notifications/SignalRNotificationHandler.cs","src/platform/mix.lib/Services/CrudService.cs","src/platform/mix.lib/Services/TenantService.cs","src/platform/mix.lib/Services/TenantServiceBase.cs","src/platform/mix.lib/mix.lib.csproj"]},{"name":"src — tests","slug":"src-tests","files":["src/tests/mix.account.tests/Controllers/MixAccountControllerTests.cs","src/tests/mix.account.tests/GlobalTestSettings.cs","src/tests/mix.account.tests/Helpers/CacheServiceFactory.cs","src/tests/mix.account.tests/Helpers/FakeAccountDatabaseService.cs","src/tests/mix.account.tests/Helpers/FakeAuthConfigService.cs","src/tests/mix.account.tests/mix.account.tests.csproj","src/tests/mix.admin.ui.tests/PostEditorTests.cs","src/tests/mix.admin.ui.tests/mix.admin.ui.tests.csproj","src/tests/mix.ai.tests/Agents/AgentProviderResolutionTests.cs","src/tests/mix.ai.tests/Agents/ConversationManagerTests.cs","src/tests/mix.ai.tests/Agents/FakeLlmServiceFactory.cs","src/tests/mix.ai.tests/Agents/RoutingAgentTests.cs","src/tests/mix.ai.tests/Agents/TokenOptimizerTests.cs","src/tests/mix.ai.tests/Controllers/AIChatControllerTests.cs","src/tests/mix.ai.tests/Controllers/RAGControllerTests.cs","src/tests/mix.ai.tests/GlobalTestSettings.cs","src/tests/mix.ai.tests/Services/ChunkingServiceTests.cs","src/tests/mix.ai.tests/Services/EmbeddingServiceTests.cs","src/tests/mix.ai.tests/Services/LlmServiceFactoryTests.cs","src/tests/mix.ai.tests/Services/MixAIServiceTests.cs","src/tests/mix.ai.tests/Services/PostgresVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/QdrantVectorDbServiceTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagClientTests.cs","src/tests/mix.ai.tests/Services/RAG/LightRag/LightRagInstructionSeederTests.cs","src/tests/mix.ai.tests/Services/SemanticSearchServiceTests.cs","src/tests/mix.ai.tests/mix.ai.tests.csproj","src/tests/mix.aspire.service.tests/Extensions/AddServiceAccountAuthTests.cs","src/tests/mix.aspire.service.tests/Extensions/MapSecureDefaultEndpointsTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdForwardedHeadersStartupFilterTests.cs","src/tests/mix.aspire.service.tests/Linkerd/LinkerdShutdownServiceTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenCacheTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerFilterTests.cs","src/tests/mix.aspire.service.tests/ServiceAccount/ServiceAccountTokenHandlerTests.cs","src/tests/mix.aspire.service.tests/mix.aspire.service.tests.csproj","src/tests/mix.cqrs.tests/AssemblyInfo.cs","src/tests/mix.cqrs.tests/Behaviors/BehaviorOrderIntegrationTests.cs","src/tests/mix.cqrs.tests/Behaviors/CacheInvalidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/UnitOfWorkBehaviorTests.cs","src/tests/mix.cqrs.tests/Behaviors/ValidationBehaviorTests.cs","src/tests/mix.cqrs.tests/Fakes/FakeCacheService.cs","src/tests/mix.cqrs.tests/Fakes/FakeMediator.cs","src/tests/mix.cqrs.tests/Fakes/FakeUow.cs","src/tests/mix.cqrs.tests/Fakes/TestDbContext.cs","src/tests/mix.cqrs.tests/Fakes/TestEntity.cs","src/tests/mix.cqrs.tests/Fakes/TestViewModel.cs","src/tests/mix.cqrs.tests/Notifications/QueueEventNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/Notifications/SignalRNotificationHandlerTests.cs","src/tests/mix.cqrs.tests/mix.cqrs.tests.csproj","src/tests/mix.database.migrations.tests/GlobalTestSettings.cs","src/tests/mix.database.migrations.tests/Helpers/TestConnections.cs","src/tests/mix.database.migrations.tests/Helpers/TestDatabaseServiceFactory.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/MySQL/MySqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/PostgreSQL/PostgresqlQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAccountContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerAuditLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerMixCmsContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQuartzContextMigrationTests.cs","src/tests/mix.database.migrations.tests/Migrations/SqlServer/SqlServerQueueLogContextMigrationTests.cs","src/tests/mix.database.migrations.tests/appsettings.example.json","src/tests/mix.database.migrations.tests/mix.database.migrations.tests.csproj","src/tests/mix.datasource.tests/Controllers/DataSourceControllerTests.cs","src/tests/mix.datasource.tests/GlobalTestSettings.cs","src/tests/mix.datasource.tests/Helpers/FakeDataSourceMigrationService.cs","src/tests/mix.datasource.tests/Helpers/TestServiceFactory.cs","src/tests/mix.datasource.tests/Services/DataSourceMigrationServiceTests.cs","src/tests/mix.datasource.tests/ViewModels/DataSourceTableDtoTests.cs","src/tests/mix.datasource.tests/mix.datasource.tests.csproj","src/tests/mix.gateway.tests/GlobalTestSettings.cs","src/tests/mix.gateway.tests/RouteCheckerTests.cs","src/tests/mix.gateway.tests/mix.gateway.tests.csproj","src/tests/mix.installation.tests/Controllers/InitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/MySqlInitCmsControllerTests.cs","src/tests/mix.installation.tests/Controllers/SqlServerInitCmsControllerTests.cs","src/tests/mix.installation.tests/GlobalTestSettings.cs","src/tests/mix.installation.tests/Helpers/FakeAppSettingsService.cs","src/tests/mix.installation.tests/Helpers/FakeDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeMySqlDatabaseService.cs","src/tests/mix.installation.tests/Helpers/FakeSqlServerDatabaseService.cs","src/tests/mix.installation.tests/Helpers/TestCredentials.cs","src/tests/mix.installation.tests/Services/InitCmsServiceTests.cs","src/tests/mix.installation.tests/mix.installation.tests.csproj","src/tests/mix.queue.tests/GlobalTestSettings.cs","src/tests/mix.queue.tests/QueueServiceCollectionExtensionTests.cs","src/tests/mix.queue.tests/mix.queue.tests.csproj"]}]},{"name":"tmp_schema","slug":"tmp-schema","files":["tmp_schema/schema/schema.json"]},{"name":"wiki","slug":"wiki","files":["wiki/admin-implementation-progress.md","wiki/admin-screens-inventory.md","wiki/admin-screens-inventory_blazor-app.md","wiki/ai-integration.md","wiki/api-reference.md","wiki/architecture.md","wiki/blazor-installation-app.md","wiki/configuration.md","wiki/database-support.md","wiki/developer-skills.md","wiki/getting-started.md","wiki/init-controller-redirect-middleware.md","wiki/json-configuration-folder-extension.md","wiki/lightrag-integration.md","wiki/mix-account.md","wiki/mix-datasource.md","wiki/mix-heart.md","wiki/module-development.md","wiki/multi-tenancy.md","wiki/signalr.md","wiki/testing.md"]}]};
(function() {
var activePage = 'overview';
document.addEventListener('DOMContentLoaded', function() {
mermaid.initialize({ startOnLoad: false, theme: 'neutral', securityLevel: 'loose' });
renderMeta();
renderNav();
document.getElementById('menu-toggle').addEventListener('click', function() {
document.getElementById('sidebar').classList.toggle('open');
});
if (location.hash && location.hash.length > 1) {
activePage = decodeURIComponent(location.hash.slice(1));
}
navigateTo(activePage);
});
function renderMeta() {
if (!META) return;
var el = document.getElementById('meta-info');
var parts = [];
if (META.generatedAt) {
parts.push(new Date(META.generatedAt).toLocaleDateString());
}
if (META.model) parts.push(META.model);
if (META.fromCommit) parts.push(META.fromCommit.slice(0, 8));
el.textContent = parts.join(' \u00b7 ');
}
function renderNav() {
var container = document.getElementById('nav-tree');
var html = '<div class="nav-section">';
html += '<a class="nav-item overview" data-page="overview" href="#overview">Overview</a>';
html += '</div>';
if (TREE.length > 0) {
html += '<div class="nav-group-label">Modules</div>';
html += buildNavTree(TREE);
}
container.innerHTML = html;
container.addEventListener('click', function(e) {
var target = e.target;
while (target && !target.dataset.page) { target = target.parentElement; }
if (target && target.dataset.page) {
e.preventDefault();
navigateTo(target.dataset.page);
}
});
}
function buildNavTree(nodes) {
var html = '';
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
html += '<div class="nav-section">';
html += '<a class="nav-item" data-page="' + escH(node.slug) + '" href="#' + encodeURIComponent(node.slug) + '">' + escH(node.name) + '</a>';
if (node.children && node.children.length > 0) {
html += '<div class="nav-children">' + buildNavTree(node.children) + '</div>';
}
html += '</div>';
}
return html;
}
function escH(s) {
var d = document.createElement('div');
d.textContent = s;
return d.innerHTML;
}
function navigateTo(page) {
activePage = page;
location.hash = encodeURIComponent(page);
var items = document.querySelectorAll('.nav-item');
for (var i = 0; i < items.length; i++) {
if (items[i].dataset.page === page) {
items[i].classList.add('active');
} else {
items[i].classList.remove('active');
}
}
var contentEl = document.getElementById('content');
var md = PAGES[page];
if (!md) {
contentEl.innerHTML = '<div class="empty-state"><h2>Page not found</h2><p>' + escH(page) + '.md does not exist.</p></div>';
return;
}
contentEl.innerHTML = marked.parse(md);
// Rewrite .md links to hash navigation
var links = contentEl.querySelectorAll('a[href]');
for (var i = 0; i < links.length; i++) {
var href = links[i].getAttribute('href');
if (href && href.endsWith('.md') && href.indexOf('://') === -1) {
var slug = href.replace(/\.md$/, '');
links[i].setAttribute('href', '#' + encodeURIComponent(slug));
(function(s) {
links[i].addEventListener('click', function(e) {
e.preventDefault();
navigateTo(s);
});
})(slug);
}
}
// Convert mermaid code blocks into mermaid divs
var mermaidBlocks = contentEl.querySelectorAll('pre code.language-mermaid');
for (var i = 0; i < mermaidBlocks.length; i++) {
var pre = mermaidBlocks[i].parentElement;
var div = document.createElement('div');
div.className = 'mermaid';
div.textContent = mermaidBlocks[i].textContent;
pre.parentNode.replaceChild(div, pre);
}
try { mermaid.run({ querySelector: '.mermaid' }); } catch(e) {}
window.scrollTo(0, 0);
document.getElementById('sidebar').classList.remove('open');
}
})();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment