Go to file
Ahmed Darrazi ae999e925d Generate task breakdown for Policy Explorer UX Upgrade
47 tasks organized across 8 phases by user story:

Phase 1: Setup (3 tasks)
- Install Shadcn Sheet and Badge components
- Create component directory structure

Phase 2: Foundation (5 tasks) ⚠️ BLOCKING
- getRecentPolicySettings() Server Action
- Extend searchPolicySettings() with limit param
- Null-value filtering in backend
- Type exports

Phase 3: User Story 1 - Browse Recent (8 tasks) 🎯 MVP
- PolicyTable component with click handlers
- PolicySearchContainer client wrapper
- Refactor page to Server Component
- 50 newest policies on load, no empty state

Phase 4: User Story 2 - Detail Sheet (9 tasks) 🎯 MVP
- PolicyDetailSheet component
- JSON detection and formatting
- Click-to-open sheet integration
- Handle long content and errors

Phase 5: User Story 3 - Search (6 tasks) P2
- Integrate SearchInput component
- Search state management
- Null filtering in results

Phase 6: User Story 4 - Visual (5 tasks) P3
- Badge color mapping
- Badge rendering for policy types
- Hover effects verification

Phase 7: Navigation (4 tasks)
- Update config/nav.ts
- Remove 'All Settings' menu item
- Consolidate to single 'Policy Explorer'

Phase 8: Polish (7 tasks)
- Responsive layout
- Loading states
- Performance validation (<2s load, <300ms sheet)
- Accessibility and cross-browser testing

MVP Scope: Phases 1-4 (25 tasks)
Total: 47 tasks with dependency graph and parallel execution opportunities
2025-12-07 02:12:31 +01:00
.github Switch to development branch and update deployment workflow 2025-12-06 20:42:10 +01:00
.specify Feature: Global Search & Seed Data complete 2025-12-05 22:06:22 +01:00
.vscode Feature: Global Search & Seed Data complete 2025-12-05 22:06:22 +01:00
app feat: Add settings overview page with getAllPolicySettings 2025-12-07 01:50:34 +01:00
components Add specification for 002-manual-policy-sync feature 2025-12-06 13:35:54 +01:00
config feat: Add settings overview page with getAllPolicySettings 2025-12-07 01:50:34 +01:00
lib feat: Add settings overview page with getAllPolicySettings 2025-12-07 01:50:34 +01:00
public Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
specs Generate task breakdown for Policy Explorer UX Upgrade 2025-12-07 02:12:31 +01:00
.gitignore Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
components.json Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
debug-db.ts Fix tenant_id not being saved to database on login 2025-12-06 12:29:00 +01:00
Dockerfile Configured Azure AD and Dockerfile 2025-12-05 21:00:49 +01:00
drizzle.config.ts Fix: Make all env vars optional for Docker build time 2025-12-05 23:52:11 +01:00
eslint.config.mjs Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
fix-constraint.ts Fix: Add unique constraint for policy_settings upsert 2025-12-06 23:33:43 +01:00
kirimase.config.json Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
next-auth.d.ts Fix: Multiple TypeScript build errors for production 2025-12-05 23:49:00 +01:00
next.config.ts Configured Azure AD and Dockerfile 2025-12-05 21:00:49 +01:00
package-lock.json Feature: Global Search & Seed Data complete 2025-12-05 22:06:22 +01:00
package.json Fix tenant_id not being saved to database on login 2025-12-06 12:29:00 +01:00
postcss.config.mjs Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
README.md Feature: Global Search & Seed Data complete 2025-12-05 22:06:22 +01:00
tailwind.config.ts Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
tsconfig.json Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00

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

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