|
All checks were successful
Trigger Cloudarix Deploy / call-webhook (push) Successful in 2s
The PolicyDetailSheet component now properly handles both type unions: - PolicySettingRow (has graphPolicyId) - used in V2 - PolicySettingSearchResult (has id) - used in V1 Uses type guard to check for 'graphPolicyId' property and falls back to 'id' field. This fixes the TypeScript compilation error in production builds. |
||
|---|---|---|
| .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