Files
ArchiTools/docs/MODULE-MAP.md
T
AI Assistant 0c4b91707f audit: production safety fixes, cleanup, and documentation overhaul
CRITICAL fixes:
- Fix SQL injection in geoportal search (template literal in $queryRaw)
- Preserve enrichment data during GIS re-sync (upsert update explicit fields only)
- Fix ePay version race condition (advisory lock in transaction)
- Add requireAuth() to compress-pdf and unlock routes (were unauthenticated)
- Remove hardcoded Stirling PDF API key (env vars now required)

IMPORTANT fixes:
- Add admin role check on registratura debug-sequences endpoint
- Fix reserved slot race condition with advisory lock in transaction
- Use SSO identity in close-guard-dialog instead of hardcoded "Utilizator"
- Storage DELETE catches only P2025 (not found), re-throws real errors
- Add onDelete: SetNull for GisFeature → GisSyncRun relation
- Move portal-only users to PORTAL_ONLY_USERS env var
- Add security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy)
- Add periodic cleanup for eTerra/ePay session caches and progress store
- Log warning when ePay dataDocument is missing (expiry fallback)

Cleanup:
- Delete orphaned rgi-test page (1086 lines, unregistered, inaccessible)
- Delete legacy/ folder (5 files, unreferenced from src/)
- Remove unused ensureBucketExists() from minio-client.ts

Documentation:
- Optimize CLAUDE.md: 464 → 197 lines (moved per-module details to docs/)
- Create docs/ARCHITECTURE-QUICK.md (80 lines: data flow, deps, env vars)
- Create docs/MODULE-MAP.md (140 lines: entry points, API routes, cross-deps)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 06:40:34 +02:00

6.3 KiB

ArchiTools — Module Map

Quick reference: entry points, key files, API routes, and cross-module dependencies.

Module Index

Module Entry Point Config Types
Dashboard modules/dashboard/index.ts types.ts
Email Signature modules/email-signature/index.ts config.ts types.ts
Word XML modules/word-xml/index.ts config.ts types.ts
Registratura modules/registratura/index.ts config.ts types.ts
Tag Manager modules/tag-manager/index.ts config.ts types.ts
IT Inventory modules/it-inventory/index.ts config.ts types.ts
Address Book modules/address-book/index.ts config.ts types.ts
Password Vault modules/password-vault/index.ts config.ts types.ts
Mini Utilities modules/mini-utilities/index.ts config.ts types.ts
Prompt Generator modules/prompt-generator/index.ts config.ts types.ts
Digital Signatures modules/digital-signatures/index.ts config.ts types.ts
Word Templates modules/word-templates/index.ts config.ts types.ts
AI Chat modules/ai-chat/index.ts config.ts types.ts
Hot Desk modules/hot-desk/index.ts config.ts types.ts
ParcelSync modules/parcel-sync/index.ts config.ts types.ts
Geoportal modules/geoportal/index.ts config.ts types.ts
Visual CoPilot modules/visual-copilot/index.ts config.ts

Module Details

Dashboard

  • Route: /
  • Main component: app/(modules)/page.tsx (home page, not a registered module)
  • API routes: none (reads via storage API)
  • Cross-deps: none

Email Signature

  • Route: /email-signature
  • Main component: components/email-signature-module.tsx
  • API routes: none (client-only)
  • Cross-deps: none

Word XML

  • Route: /word-xml
  • Main component: components/word-xml-module.tsx
  • Services: services/xml-builder.ts, services/zip-export.ts
  • API routes: none (client-only)
  • Cross-deps: none

Registratura

  • Route: /registratura
  • Main component: components/registratura-module.tsx
  • Key services: services/registry-service.ts (numbering, advisory locks), services/working-days.ts (Romanian holidays), services/deadline-catalog.ts (18 legal deadline types), services/deadline-service.ts
  • API routes: /api/registratura (CRUD + audit), /api/registratura/reserved, /api/registratura/debug-sequences, /api/registratura/audit, /api/registratura/status-check
  • Cross-deps: address-book (quick contact, reverse lookup), notifications (deadline digest)

Tag Manager

  • Route: /tag-manager
  • Main component: components/tag-manager-module.tsx
  • Services: services/manictime-sync.ts
  • API routes: /api/manictime
  • Cross-deps: core/tagging

IT Inventory

  • Route: /it-inventory
  • Main component: components/it-inventory-module.tsx
  • API routes: none (via storage API)
  • Cross-deps: none

Address Book

  • Route: /address-book
  • Main component: components/address-book-module.tsx
  • Services: services/vcard-export.ts
  • API routes: /api/address-book (CRUD, Bearer token support)
  • Cross-deps: registratura (reverse lookup via useRegistry)

Password Vault

  • Route: /password-vault
  • Main component: components/password-vault-module.tsx
  • API routes: /api/vault (AES-256-GCM encrypt/decrypt)
  • Cross-deps: none

Mini Utilities

  • Route: /mini-utilities
  • Main component: components/mini-utilities-module.tsx (monolithic, tab-based)
  • API routes: /api/compress-pdf/* (local qpdf + cloud iLovePDF), /api/compress-pdf/unlock
  • Cross-deps: none

Prompt Generator

  • Route: /prompt-generator
  • Main component: components/prompt-generator-module.tsx
  • Services: services/prompt-templates.ts (18 templates)
  • API routes: none (client-only)
  • Cross-deps: none

Digital Signatures

  • Route: /digital-signatures
  • Main component: components/digital-signatures-module.tsx
  • API routes: none (via storage API)
  • Cross-deps: none

Word Templates

  • Route: /word-templates
  • Main component: components/word-templates-module.tsx
  • Services: services/docx-analyzer.ts
  • API routes: none (via storage API)
  • Cross-deps: none

AI Chat

  • Route: /ai-chat
  • Main component: components/ai-chat-module.tsx
  • API routes: /api/ai-chat (multi-provider proxy)
  • Cross-deps: tag-manager (project linking)

Hot Desk

  • Route: /hot-desk
  • Main component: components/hot-desk-module.tsx
  • Services: services/desk-layout.ts
  • API routes: none (via storage API)
  • Cross-deps: none

ParcelSync

  • Route: /parcel-sync
  • Main component: components/parcel-sync-module.tsx (~4100 lines, 5 tabs)
  • Key services: services/eterra-client.ts (~1000 lines, eTerra API), services/sync-service.ts, services/enrich-service.ts, services/eterra-health.ts, services/epay-client.ts, services/epay-queue.ts, services/epay-storage.ts, services/no-geom-sync.ts
  • API routes: /api/eterra/* (login, sync, search, features, UATs, health), /api/ancpi/* (order, test), /api/geoportal/* (search, boundaries, setup)
  • Cross-deps: geoportal (map components via map-tab.tsx), MinIO (CF extract PDFs), PostGIS (GisFeature, GisUat)

Geoportal

  • Route: /geoportal
  • Main component: components/geoportal-module.tsx
  • Key components: components/map-viewer.tsx (MapLibre), components/basemap-switcher.tsx, components/selection-toolbar.tsx, components/feature-info-panel.tsx
  • API routes: /api/geoportal/* (search, boundary-check, uat-bounds, setup-views)
  • Cross-deps: parcel-sync (declared dependency — uses PostGIS data)

Visual CoPilot

  • Route: /visual-copilot
  • Status: Placeholder (iframe to separate repo git.beletage.ro/gitadmin/vim)
  • API routes: none
  • Cross-deps: none