|
All checks were successful
Trigger Cloudarix Deploy / call-webhook (push) Successful in 2s
✨ New Features (Tasks T029-T037) - Client-side CSV export for selected rows - Server-side CSV export for all filtered results (max 5000) - RFC 4180 compliant CSV formatting with proper escaping - UTF-8 BOM for Excel compatibility - ExportButton dropdown with two export modes - Warning UI when results exceed 5000 rows - Loading state with spinner during server export 📦 New Files - lib/utils/csv-export.ts - CSV generation utilities - components/policy-explorer/ExportButton.tsx - Export dropdown 🔧 Updates - PolicyTableToolbar now includes ExportButton - PolicyExplorerV2Client passes export props - Filename generation with timestamp and row count ✅ Zero TypeScript compilation errors ✅ All Phase 5 tasks complete (T029-T037) ✅ Ready for Phase 6 (Enhanced Detail View) Refs: specs/004-policy-explorer-v2/tasks.md Phase 5 |
||
|---|---|---|
| .github | ||
| .specify | ||
| .vscode | ||
| app | ||
| components | ||
| config | ||
| docs/architecture | ||
| lib | ||
| public | ||
| scripts | ||
| specs | ||
| worker | ||
| .dockerignore | ||
| .eslintignore | ||
| .gitignore | ||
| .npmignore | ||
| .prettierignore | ||
| components.json | ||
| debug-db.ts | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| eslint.config.mjs | ||
| fix-constraint.ts | ||
| kirimase.config.json | ||
| next-auth.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
TenantPilot
A multi-tenant SaaS application built with Next.js, Azure AD authentication, and Drizzle ORM.
Architecture Principles
This project follows strict architectural principles defined in our Constitution:
- Server-First: Next.js App Router with Server Actions, no client-side fetches
- Type Safety: TypeScript strict mode mandatory
- Database: Drizzle ORM exclusively
- UI: Shadcn UI components with Tailwind CSS
- Auth: Azure AD multi-tenant authentication
Documentation
- Intune Reverse Engineering Guide: Process for implementing Intune sync features using PowerShell reference
- PowerShell Reference Version: Track PowerShell reference versions used for implementations
- Constitution: Core architectural principles and development rules
Getting Started
First, install dependencies:
npm install
Copy environment variables:
cp .env.example .env
Fill in your Azure AD credentials and database URL.
Run database migrations:
npm run db:push
Start the development server:
npm run dev
Open http://localhost:3000 to see the application.
Development
- Use Server Actions for all data operations
- Follow TypeScript strict mode requirements
- Use Shadcn UI for new components
- Test with Azure AD authentication
Deployment
Build the Docker image:
docker build -t tenantpilot .
Run with environment variables:
docker run -p 3000:3000 --env-file .env tenantpilot