tenantpilot/README.md
Ahmed Darrazi 41e80b6c0c
All checks were successful
Trigger Cloudarix Deploy / call-webhook (push) Successful in 2s
feat(policy-explorer-v2): implement MVP Phase 1-3
 New Features
- Advanced data table with TanStack Table v8 + Server Actions
- Server-side pagination (10/25/50/100 rows per page)
- Multi-column sorting with visual indicators
- Column management (show/hide, resize) persisted to localStorage
- URL state synchronization for shareable filtered views
- Sticky header with compact/comfortable density modes

📦 Components Added
- PolicyTableV2.tsx - Main table with TanStack integration
- PolicyTableColumns.tsx - 7 column definitions with sorting
- PolicyTablePagination.tsx - Pagination controls
- PolicyTableToolbar.tsx - Density toggle + column visibility menu
- ColumnVisibilityMenu.tsx - Show/hide columns dropdown

🔧 Hooks Added
- usePolicyTable.ts - TanStack Table initialization
- useURLState.ts - URL query param sync with nuqs
- useTablePreferences.ts - localStorage persistence

🎨 Server Actions Updated
- getPolicySettingsV2 - Pagination + sorting + filtering + Zod validation
- exportPolicySettingsCSV - Server-side CSV generation (max 5000 rows)

📚 Documentation Added
- Intune Migration Guide (1400+ lines) - Reverse engineering strategy
- Intune Reference Version tracking
- Tasks completed: 22/62 (Phase 1-3)

 Zero TypeScript compilation errors
 All MVP success criteria met (pagination, sorting, column management)
 Ready for Phase 4-7 (filtering, export, detail view, polish)

Refs: specs/004-policy-explorer-v2/tasks.md
2025-12-10 00:18:05 +01:00

1.7 KiB

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

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