Skip to content

Document Management

Secure, S3-backed file storage for employee compliance documents - with HR-controlled verification workflows, visibility controls, and strict tenant isolation.


Prerequisites

From Core HR:

  • βœ… Active employees - documents are always linked to a specific employee
  • βœ… S3 storage configured - backend environment must have S3 bucket credentials set up (ask your system administrator)

πŸ‘€ Role-Based Access

ActionSUPER_ADMINHR_ADMINEMPLOYEE
Create / edit document typesβœ…βœ…βŒ
Delete document typesβœ…βŒβŒ
Upload documents (for any employee)βœ…βœ…Own only
View HR_ONLY documentsβœ…βœ…βŒ
View EMPLOYEE_VISIBLE documentsβœ…βœ…βœ… (own)
Verify documentsβœ…βœ…βŒ
Reject documentsβœ…βœ…βŒ
Download documentsβœ…βœ…βœ… (own, if EMPLOYEE_VISIBLE)
Delete documentsβœ…βœ…βŒ

Admin Workflow

Step 1 - Configure Document Types

Document types define what kinds of files can be uploaded and whether HR approval is required.

Navigate to: Settings β†’ Organization β†’ Document Types β†’ Add Document Type

FieldDescriptionExample
NameDocument category namePassport
DescriptionGuidance for employeesColour copy of government-issued passport
Requires VerificationIf true, uploaded docs stay PENDING until HR approvesβœ…
Employee Can EditIf true, employees can replace/update their uploadfalse (for official contracts)

Common document types to configure:

DocumentRequires VerificationEmployee Can Edit
Aadhaar Cardβœ…βŒ
PAN Cardβœ…βŒ
Passportβœ…βŒ
Signed Employment Contractβœ…βŒ
Educational Certificateβœ…βŒ
Bank Account Detailsβœ…βœ…
Address Proofβœ…βœ…

Step 2 - Review & Verify Documents

When employees upload documents that require verification, they appear in the HR queue.

Navigate to: HR Portal β†’ Pending Verifications

For each document:

  • Check the document number and expiry date
  • Preview the file
  • Click Verify (with optional notes) β†’ status moves to VERIFIED
  • Click Reject (with a reason) β†’ status moves to REJECTED and the employee is notified to re-upload

Employee Workflow

Step 1 - Upload a Document

Navigate to: My Profile β†’ Documents Tab β†’ Upload Document

The upload uses a direct-to-S3 flow for efficiency:

1. You click Upload β†’ the system generates a secure S3 upload URL
2. Your file is sent directly to S3 storage (not through the backend server)
3. The backend registers the file metadata (name, size, type, expiry)

Fill in the upload form:

FieldDescriptionExample
Document TypeSelect from available typesPassport
FilePDF, JPG, or PNG onlypassport_scan.pdf
Document NumberPassport/ID numberA1234567
Expiry DateWhen the document expires2031-05-15
VisibilityEMPLOYEE_VISIBLE or HR_ONLYEMPLOYEE_VISIBLE

File constraints:

  • βœ… Accepted formats: PDF, JPG, PNG
  • βœ… Maximum file size: 10 MB
  • ❌ Word documents, Excel files, and other formats are rejected

Step 2 - Check Document Status

Navigate to: My Profile β†’ Documents Tab

StatusMeaning
PENDINGUploaded; waiting for HR verification
VERIFIEDApproved by HR
REJECTEDRejected; re-upload required

If your document is rejected, you’ll see the rejection reason. Upload a corrected version.


Step 3 - Download Your Document

Navigate to: My Profile β†’ Documents Tab β†’ click document β†’ Download

The system generates a temporary secure download link (presigned S3 GET URL). The link is valid for a limited time - download immediately.


Visibility Controls

Visibility SettingWho Can See It
EMPLOYEE_VISIBLEThe employee, HR_ADMIN, and SUPER_ADMIN
HR_ONLYHR_ADMIN and SUPER_ADMIN only - hidden from the employee’s portal

Use HR_ONLY for sensitive documents like background check reports, disciplinary notices, or internal performance notes.


Tenant Isolation & Security

Every document operation is scoped to your organization’s tenant ID. This means:

  • Employees from Company A cannot access documents belonging to Company B
  • Even if someone guesses a valid document UUID, cross-tenant access returns 404 Document not found
  • S3 keys are structured as tenants/{tenantId}/employees/{employeeId}/docs/{filename} to enforce physical storage separation

Common Troubleshooting

ProblemSolution
File upload rejected - β€œinvalid file type”Only PDF, JPG, and PNG are accepted
File upload rejected - β€œfile too large”Maximum is 10 MB; compress your file
Document stuck in PENDING for a long timeContact HR to review the Pending Verifications queue
Document shows REJECTEDCheck the rejection reason; re-upload a corrected version
Cannot see a document I uploadedHR may have set it as HR_ONLY after upload
Download link expiredGenerate a new download link by clicking Download again