Skip to main content

PrimeForge File Service API (1.0)

Download OpenAPI specification:Download

The PrimeForge File Service Service provides comprehensive human resources management capabilities for the PrimeForge platform.

Features

  • File management
  • File storage
  • File upload
  • File download
  • File delete
  • File list
  • File search
  • File statistics

Authentication

Most endpoints require JWT authentication. Include the access token in the Authorization header: Authorization: Bearer <your_access_token>

Rate Limiting

  • General endpoints: 100 requests per minute per user
  • Admin endpoints: 50 requests per minute per admin user

Multi-tenancy

This service supports multi-tenancy. The tenant context is automatically extracted from the JWT token.

File Service

File management

Health

Health check and monitoring endpoints

Get application status

Responses

Get application health

Responses

Get authentication status

Authorizations:
JWT-auth

Responses

Response samples

Content type
application/json
{
  • "authenticated": true,
  • "tenantId": "string",
  • "userId": "string",
  • "roles": [
    ],
  • "permissions": [
    ]
}

Get authentication health status

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "message": "string"
}

Get current user information using decorators

Authorizations:
JWT-auth

Responses

Response samples

Content type
application/json
{
  • "userId": "string",
  • "tenantId": "string",
  • "email": "string",
  • "role": "string",
  • "fullContext": { }
}

Enums

EnumsController_getAllEnums

Responses

EnumsController_getEnumByName

path Parameters
name
required
string

Responses

files

Upload a new file

Authorizations:
JWT-auth
Request Body schema: multipart/form-data
required
filename
required
string <= 512 characters

Original filename

classification
required
string
Default: "PUBLIC"
Enum: "PUBLIC" "INTERNAL" "CONFIDENTIAL" "RESTRICTED"

File classification level

sensitivityLevel
required
string
Default: "LOW"
Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL"

File sensitivity level

tags
Array of strings

File tags

metadata
object

Additional metadata

description
string <= 1000 characters

File description

storageBackend
string

Storage backend preference

retentionPeriod
number

Retention period in days

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "ownerId": "string",
  • "originalFilename": "string",
  • "storedFilename": "string",
  • "mimeType": "string",
  • "fileSize": "string",
  • "classification": "PUBLIC",
  • "sensitivityLevel": "LOW",
  • "tags": [
    ],
  • "description": "string",
  • "version": 0,
  • "isCurrentVersion": true,
  • "metadata": { },
  • "checksumSha256": "string",
  • "storageBackend": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedBy": "string",
  • "deletedBy": "string"
}

Get file information

Authorizations:
JWT-auth
path Parameters
id
required
string

File ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "ownerId": "string",
  • "originalFilename": "string",
  • "storedFilename": "string",
  • "mimeType": "string",
  • "fileSize": "string",
  • "classification": "PUBLIC",
  • "sensitivityLevel": "LOW",
  • "tags": [
    ],
  • "description": "string",
  • "version": 0,
  • "isCurrentVersion": true,
  • "metadata": { },
  • "checksumSha256": "string",
  • "storageBackend": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedBy": "string",
  • "deletedBy": "string"
}

Update file information

Authorizations:
JWT-auth
path Parameters
id
required
string

File ID

Request Body schema: application/json
required
filename
string <= 512 characters

Updated filename

classification
string
Enum: "PUBLIC" "INTERNAL" "CONFIDENTIAL" "RESTRICTED"

Updated file classification

sensitivityLevel
string
Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL"

Updated sensitivity level

tags
Array of strings

Updated tags

metadata
object

Updated metadata

description
string <= 1000 characters

Updated description

Responses

Request samples

Content type
application/json
{
  • "filename": "string",
  • "classification": "PUBLIC",
  • "sensitivityLevel": "LOW",
  • "tags": [
    ],
  • "metadata": { },
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "tenantId": "string",
  • "ownerId": "string",
  • "originalFilename": "string",
  • "storedFilename": "string",
  • "mimeType": "string",
  • "fileSize": "string",
  • "classification": "PUBLIC",
  • "sensitivityLevel": "LOW",
  • "tags": [
    ],
  • "description": "string",
  • "version": 0,
  • "isCurrentVersion": true,
  • "metadata": { },
  • "checksumSha256": "string",
  • "storageBackend": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedBy": "string",
  • "deletedBy": "string"
}

Delete file

Authorizations:
JWT-auth
path Parameters
id
required
string

File ID

query Parameters
permanent
string

Permanent deletion

Responses

Download file content

Authorizations:
JWT-auth
path Parameters
id
required
string

File ID

query Parameters
version
number

File version

auditReason
string

Reason for download

Responses

Search files

Authorizations:
JWT-auth
query Parameters
filename
string

Search by filename

mimeType
string

Filter by MIME type

classification
string
Enum: "PUBLIC" "INTERNAL" "CONFIDENTIAL" "RESTRICTED"

Filter by classification

tags
Array of strings

Filter by tags

ownerId
string

Filter by owner ID

createdAfter
string

Created after date

createdBefore
string

Created before date

minSize
number

Minimum file size

maxSize
number

Maximum file size

page
number >= 1
Default: 1

Page number

limit
number >= 1
Default: 20

Items per page

Responses

Perform bulk operations on files

Authorizations:
JWT-auth
Request Body schema: application/json
required
fileIds
required
Array of strings

File IDs to operate on

operation
required
string

Operation type

parameters
object

Operation parameters

Responses

Request samples

Content type
application/json
{
  • "fileIds": [
    ],
  • "operation": "string",
  • "parameters": { }
}

Request access to a file

Submit a request to get permission to access a file

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

Request Body schema: application/json
required
permissionType
required
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Requested permission type

reason
string

Reason for requesting access

expiresAt
string <date-time>

Requested expiration date

Responses

Request samples

Content type
application/json
{
  • "permissionType": "READ",
  • "reason": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fileId": "string",
  • "requesterId": "string",
  • "permissionType": "READ",
  • "reason": "string",
  • "status": "string",
  • "requestedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "reviewedBy": "string",
  • "reviewedAt": "2019-08-24T14:15:22Z",
  • "reviewComments": "string"
}

Get file access requests

Get all access requests for a file (Admin only)

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

query Parameters
status
string

Filter by status

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Review access request

Approve or reject an access request (Admin only)

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

requestId
required
string

Access request ID

Request Body schema: application/json
required
decision
required
string
Enum: "approve" "reject"

Review decision

comments
string

Review comments

expiresAt
string <date-time>

Permission expiration date (only for approve)

Responses

Request samples

Content type
application/json
{
  • "decision": "approve",
  • "comments": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fileId": "string",
  • "requesterId": "string",
  • "permissionType": "READ",
  • "reason": "string",
  • "status": "string",
  • "requestedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "reviewedBy": "string",
  • "reviewedAt": "2019-08-24T14:15:22Z",
  • "reviewComments": "string"
}

Get file permission matrix

Get a matrix showing all users and their permissions for this file

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

Responses

Response samples

Content type
application/json
{
  • "fileId": "string",
  • "ownerId": "string",
  • "totalUsers": 0,
  • "users": [
    ],
  • "permissionSummary": { },
  • "pendingRequests": 0
}

Quick grant permission

Quickly grant permission to a user (Admin only)

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

Request Body schema: application/json
required
userId
required
string

User ID to grant permission to

permissionType
required
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Permission type to grant

expiresAt
string <date-time>

Permission expiration date

Responses

Request samples

Content type
application/json
{
  • "userId": "string",
  • "permissionType": "READ",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Bulk permission operations

Grant, revoke, or update permissions for multiple users (Admin only)

Authorizations:
JWT-auth
path Parameters
fileId
required
string

File ID

Request Body schema: application/json
required
userIds
required
Array of strings

User IDs to apply action to

action
required
string
Enum: "grant" "revoke" "update"

Action to perform

permissionType
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Permission type (required for grant/update)

expiresAt
string <date-time>

Permission expiration date

Responses

Request samples

Content type
application/json
{
  • "userIds": [
    ],
  • "action": "grant",
  • "permissionType": "READ",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "successful": [
    ],
  • "failed": [
    ],
  • "totalProcessed": 0,
  • "successCount": 0,
  • "failureCount": 0
}

File Permissions

Grant permission to a file

Grant specific permissions to a user, role, or group for a file. Requires ADMIN permission on the file.

Authorizations:
NoneNone
path Parameters
fileId
required
string

File ID

Request Body schema: application/json
required
subjectType
required
string
Enum: "USER" "ROLE" "GROUP"

Subject type (user, role, or group)

subjectId
required
string

Subject ID (user/role/group ID)

permissionType
required
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Permission type

expiresAt
string

Permission expiration date

scope
object

Permission scope and additional parameters

Responses

Request samples

Content type
application/json
{
  • "subjectType": "USER",
  • "subjectId": "string",
  • "permissionType": "READ",
  • "expiresAt": "string",
  • "scope": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fileId": "string",
  • "tenantId": "string",
  • "subjectType": "USER",
  • "subjectId": "string",
  • "permissionType": "READ",
  • "scope": { },
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "grantedAt": "2019-08-24T14:15:22Z",
  • "grantedBy": "string",
  • "revokedAt": "2019-08-24T14:15:22Z",
  • "revokedBy": "string",
  • "isActive": true,
  • "isExpired": true
}

Revoke a permission

Revoke a previously granted permission. Requires ADMIN permission on the file.

Authorizations:
NoneNone
path Parameters
permissionId
required
string

Permission ID

Responses

Get file permissions

Retrieve all active permissions for a specific file. Requires READ permission on the file.

Authorizations:
NoneNone
path Parameters
fileId
required
string

File ID

query Parameters
subjectType
string
Enum: "USER" "ROLE" "GROUP"

Filter by subject type

subjectId
string

Filter by subject ID

permissionType
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Filter by permission type

includeExpired
boolean

Include expired permissions

includeRevoked
boolean

Include revoked permissions

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get user permissions

Retrieve all permissions granted to a specific user across all files they have access to.

Authorizations:
NoneNone
path Parameters
userId
required
string

User ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check permission

Check if a user has a specific permission on a file.

Authorizations:
NoneNone
Request Body schema: application/json
required
fileId
required
string

File ID to check permission for

userId
required
string

User ID to check permission for

permissionType
required
string
Enum: "READ" "WRITE" "DELETE" "SHARE" "ADMIN"

Permission type to check

context
object

Additional context for permission check

Responses

Request samples

Content type
application/json
{
  • "fileId": "string",
  • "userId": "string",
  • "permissionType": "READ",
  • "context": { }
}

Response samples

Content type
application/json
{
  • "hasPermission": true,
  • "reason": "string",
  • "effectivePermission": "string",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Bulk grant permissions

Grant permissions to multiple files at once. Requires ADMIN permission on all specified files.

Authorizations:
NoneNone
Request Body schema: application/json
required
fileIds
required
Array of strings

File IDs to grant permissions for

required
Array of objects (PermissionGrantDto)

Permissions to grant

Responses

Request samples

Content type
application/json
{
  • "fileIds": [
    ],
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "successful": [
    ],
  • "failed": [
    ]
}

Get file permission summary

Get a summary of all permissions for a specific file.

Authorizations:
NoneNone
path Parameters
fileId
required
string

File ID

Responses

Response samples

Content type
application/json
{
  • "totalPermissions": 0,
  • "activePermissions": 0,
  • "expiredPermissions": 0,
  • "revokedPermissions": 0,
  • "byPermissionType": { },
  • "bySubjectType": { },
  • "recentActivities": [
    ]
}

Clean up expired permissions

Remove expired permissions across all files. Admin only operation.

Authorizations:
NoneNone

Responses

Response samples

Content type
application/json
{
  • "cleanedCount": 0,
  • "message": "string"
}