- Add Cloud for Sovereignty landing zone architecture and deployment - Implement complete legal document management system - Reorganize documentation with improved navigation - Add infrastructure improvements (Dockerfiles, K8s, monitoring) - Add operational improvements (graceful shutdown, rate limiting, caching) - Create comprehensive project structure documentation - Add Azure deployment automation scripts - Improve repository navigation and organization
134 lines
4.0 KiB
Markdown
134 lines
4.0 KiB
Markdown
# Legal Documents Service
|
|
|
|
Comprehensive document management service for law firms and courts.
|
|
|
|
## Features
|
|
|
|
- **Document Management**: Full CRUD operations with versioning
|
|
- **Template System**: Template-based document generation
|
|
- **Legal Matters**: Matter management and document linking
|
|
- **Document Assembly**: Multi-clause document assembly
|
|
- **Collaboration**: Comments, annotations, and review workflows
|
|
- **Workflows**: Approval, signing, and filing workflows
|
|
- **Court Filings**: E-filing and deadline tracking
|
|
- **Audit Trail**: Comprehensive audit logging
|
|
- **Search**: Full-text search and discovery
|
|
- **Security**: Watermarking, encryption, access control
|
|
- **Retention**: Retention policies and disposal workflows
|
|
- **Clause Library**: Reusable clause management
|
|
|
|
## API Endpoints
|
|
|
|
### Documents
|
|
- `POST /documents` - Create document
|
|
- `GET /documents/:id` - Get document
|
|
- `GET /documents` - List documents
|
|
- `PATCH /documents/:id` - Update document
|
|
- `POST /documents/:id/checkout` - Checkout document
|
|
- `POST /documents/:id/checkin` - Checkin document
|
|
|
|
### Versions
|
|
- `GET /documents/:id/versions` - List versions
|
|
- `GET /documents/:id/versions/:version` - Get version
|
|
- `GET /documents/:id/versions/latest` - Get latest version
|
|
- `GET /documents/:id/versions/history` - Get version history
|
|
- `GET /documents/:id/versions/:v1/compare/:v2` - Compare versions
|
|
- `POST /documents/:id/versions/:version/restore` - Restore version
|
|
|
|
### Templates
|
|
- `POST /templates` - Create template
|
|
- `GET /templates/:id` - Get template
|
|
- `GET /templates` - List templates
|
|
- `PATCH /templates/:id` - Update template
|
|
- `POST /templates/:id/version` - Create template version
|
|
- `POST /templates/:id/render` - Render template
|
|
- `GET /templates/:id/variables` - Extract variables
|
|
|
|
### Matters
|
|
- `POST /matters` - Create matter
|
|
- `GET /matters/:id` - Get matter
|
|
- `GET /matters` - List matters
|
|
- `PATCH /matters/:id` - Update matter
|
|
- `POST /matters/:id/participants` - Add participant
|
|
- `GET /matters/:id/participants` - Get participants
|
|
- `POST /matters/:matter_id/documents/:document_id` - Link document
|
|
- `GET /matters/:id/documents` - Get matter documents
|
|
|
|
### Assembly
|
|
- `POST /assembly/generate` - Generate from template
|
|
- `POST /assembly/preview` - Preview template rendering
|
|
- `POST /assembly/from-clauses` - Assemble from clauses
|
|
|
|
### Collaboration
|
|
- `POST /documents/:id/comments` - Create comment
|
|
- `GET /documents/:id/comments` - Get comments
|
|
- `PATCH /comments/:id` - Update comment
|
|
- `POST /comments/:id/resolve` - Resolve comment
|
|
|
|
### Workflows
|
|
- `POST /workflows` - Create workflow
|
|
- `GET /workflows/:id` - Get workflow
|
|
- `GET /documents/:id/workflows` - Get document workflows
|
|
- `PATCH /workflows/:id/status` - Update workflow status
|
|
|
|
### Filings
|
|
- `POST /filings` - Create filing
|
|
- `GET /filings/:id` - Get filing
|
|
- `GET /filings` - List filings
|
|
- `GET /matters/:id/filing-deadlines` - Get deadlines
|
|
|
|
### Audit
|
|
- `GET /documents/:id/audit` - Get audit logs
|
|
- `GET /audit/search` - Search audit logs
|
|
- `GET /audit/statistics` - Get statistics
|
|
|
|
### Search
|
|
- `POST /search` - Search documents
|
|
- `GET /search/suggestions` - Get search suggestions
|
|
|
|
### Retention
|
|
- `POST /retention/policies` - Create policy
|
|
- `GET /retention/policies` - List policies
|
|
- `POST /documents/:id/retention` - Apply policy
|
|
- `GET /documents/:id/retention` - Get retention record
|
|
- `GET /retention/expired` - Get expired records
|
|
- `POST /documents/:id/dispose` - Dispose document
|
|
- `GET /retention/statistics` - Get statistics
|
|
|
|
### Clauses
|
|
- `POST /clauses` - Create clause
|
|
- `GET /clauses/:id` - Get clause
|
|
- `GET /clauses` - List clauses
|
|
- `POST /clauses/:id/render` - Render clause
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Install dependencies
|
|
pnpm install
|
|
|
|
# Run development server
|
|
pnpm dev
|
|
|
|
# Build
|
|
pnpm build
|
|
|
|
# Start production server
|
|
pnpm start
|
|
|
|
# Run tests
|
|
pnpm test
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
- `PORT` - Server port (default: 4005)
|
|
- `DATABASE_URL` - PostgreSQL connection string
|
|
- `NODE_ENV` - Environment (development/production)
|
|
- `SWAGGER_SERVER_URL` - Swagger server URL
|
|
|
|
## API Documentation
|
|
|
|
Swagger documentation available at `/docs` when running.
|
|
|