Go to file
Ahmed Darrazi aa598452e9
All checks were successful
Trigger Cloudarix Deploy / call-webhook (push) Successful in 2s
feat(policy-explorer-v2): Phase 6 - Enhanced Detail View
Implemented Tasks T038-T046:
- T038: Created useCopyToClipboard hook with toast notifications
- T039: Skipped (unit tests - optional)
- T040: Added copy button for Policy ID field
- T041: Added copy button for Setting Name field
- T042: Added tabs for Details and Raw JSON views
- T043: Implemented Raw JSON tab with syntax highlighting
- T044: Created getIntunePortalLink utility (8 policy types)
- T045: Added Open in Intune button with URL construction
- T046: Fallback to copy Policy ID if URL unavailable

Files Created:
- lib/hooks/useCopyToClipboard.ts (65 lines)
- lib/utils/policy-table-helpers.ts (127 lines)

Files Updated:
- components/policy-explorer/PolicyDetailSheet.tsx (enhanced with tabs, copy buttons, Intune links)

Features:
- Copy-to-clipboard for all fields with visual feedback
- Two-tab interface: Details (enhanced fields) and Raw JSON (full object)
- Deep linking to Intune portal by policy type
- Clipboard API with document.execCommand fallback
- Toast notifications for user feedback
2025-12-10 00:40:09 +01:00
.github ci: call worker deploy webhook (tenantpilot-worker) on development push 2025-12-09 12:38:50 +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(policy-explorer-v2): implement Phase 5 - Bulk CSV Export 2025-12-10 00:30:33 +01:00
components feat(policy-explorer-v2): Phase 6 - Enhanced Detail View 2025-12-10 00:40:09 +01:00
config feat: Policy Explorer UX Upgrade (003) 2025-12-07 02:28:15 +01:00
docs/architecture feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +01:00
lib feat(policy-explorer-v2): Phase 6 - Enhanced Detail View 2025-12-10 00:40:09 +01:00
public Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
scripts chore(worker): add structured logging, job events, worker health endpoint and health-check script 2025-12-09 12:22:16 +01:00
specs feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +01:00
worker Use Graph beta for beta-only endpoints 2025-12-09 21:56:38 +01:00
.dockerignore chore(worker): add structured logging, job events, worker health endpoint and health-check script 2025-12-09 12:22:16 +01:00
.eslintignore chore(worker): add structured logging, job events, worker health endpoint and health-check script 2025-12-09 12:22:16 +01:00
.gitignore feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +01:00
.npmignore chore(worker): add structured logging, job events, worker health endpoint and health-check script 2025-12-09 12:22:16 +01:00
.prettierignore chore(worker): add structured logging, job events, worker health endpoint and health-check script 2025-12-09 12:22:16 +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 feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +01:00
package.json feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +01:00
postcss.config.mjs Initial Setup für Dokploy 2025-11-18 23:24:41 +01:00
README.md feat(policy-explorer-v2): implement MVP Phase 1-3 2025-12-10 00:18:05 +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

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