Skip to content

API Reference

RecordPlatform REST API index aligned with current controllers and security rules.

Interactive Docs

Swagger Basic auth (Knife4j): admin / 123456 by default (configurable).

Base URL

text
http://localhost:8000/record-platform

Authentication and Public Rules

1) Standard JWT auth

Most endpoints require:

http
Authorization: Bearer <token>

2) Explicit public endpoints (permitAll)

Based on SecurityConfiguration:

  • POST /api/v1/auth/login
  • POST /api/v1/auth/verification-codes
  • POST /api/v1/auth/register
  • POST /api/v1/auth/password-resets/confirm
  • PUT /api/v1/auth/password-resets
  • GET /api/v1/shares/{shareCode}/files
  • GET /api/v1/public/shares/{shareCode}/files/{fileHash}/chunks
  • GET /api/v1/public/shares/{shareCode}/files/{fileHash}/decrypt-info
  • GET /api/v1/images/download/images/**
  • GET /api/v1/shares/**
  • GET /api/v1/sse/connect (still requires short-lived token)

3) SSE dual-token flow

  • POST /api/v1/auth/tokens/sse: requires standard JWT
  • GET /api/v1/sse/connect?token=...: public route, but short-lived one-time token is mandatory

Endpoints by Module

Auth (/api/v1/auth)

MethodEndpointDescription
POST/api/v1/auth/verification-codesRequest email verification code
POST/api/v1/auth/registerRegister user
POST/api/v1/auth/password-resets/confirmConfirm password reset
PUT/api/v1/auth/password-resetsExecute password reset
POST/api/v1/auth/tokens/refreshRefresh access token
POST/api/v1/auth/tokens/sseIssue short-lived SSE token (JWT required)

Login/logout are handled by Spring Security (non-controller endpoints): POST /api/v1/auth/login, POST /api/v1/auth/logout

User (/api/v1/users)

MethodEndpointDescription
GET/api/v1/users/infoGet user profile
PUT/api/v1/users/infoUpdate user profile
PUT/api/v1/users/emailChange email
PUT/api/v1/users/passwordChange password

File Upload (/api/v1/upload-sessions)

MethodEndpointDescription
POST/api/v1/upload-sessionsStart chunked upload
PUT/api/v1/upload-sessions/{clientId}/chunks/{chunkNumber}Upload chunk
POST/api/v1/upload-sessions/{clientId}/completeComplete upload
POST/api/v1/upload-sessions/{clientId}/pausePause upload
POST/api/v1/upload-sessions/{clientId}/resumeResume upload
DELETE/api/v1/upload-sessions/{clientId}Cancel upload
GET/api/v1/upload-sessions/{clientId}Check upload status
GET/api/v1/upload-sessions/{clientId}/progressQuery upload progress

Files and Sharing (/api/v1/files)

MethodEndpointDescription
GET/api/v1/files/{id}File detail by ID
GET/api/v1/files/hash/{fileHash}File detail by hash
GET/api/v1/filesUser file page (supports keyword, keywordMode=FUZZY/PREFIX/EXACT_HASH/AUTO, status, startTime, endTime)
GET/api/v1/files/statsUser file stats
GET/api/v1/files/hash/{fileHash}/addressesFetch download URLs
GET/api/v1/transactions/{transactionHash}Query blockchain transaction
GET/api/v1/files/hash/{fileHash}/chunksDownload file (authenticated)
GET/api/v1/files/hash/{fileHash}/decrypt-infoDecrypt info (authenticated)
GET/api/v1/shares/{shareCode}/filesPublic share file list (public)
GET/api/v1/files/sharesMy share list
DELETE/api/v1/filesBatch delete (hash/id)
DELETE/api/v1/files/{id}Delete by file ID (admin)
POST/api/v1/sharesCreate share
PATCH/api/v1/shares/{shareCode}Update share
DELETE/api/v1/files/share/{shareCode}Cancel share
POST/api/v1/shares/{shareCode}/files/saveSave shared files to my space
GET/api/v1/shares/{shareCode}/files/{fileHash}/chunksShared download (authenticated)
GET/api/v1/shares/{shareCode}/files/{fileHash}/decrypt-infoShared decrypt info (authenticated)
GET/api/v1/files/share/{shareCode}/access-logsShare access logs (admin)
GET/api/v1/files/share/{shareCode}/statsShare access stats (admin)
GET/api/v1/files/{id}/provenanceFile provenance graph (admin)
GET/api/v1/public/shares/{shareCode}/files/{fileHash}/chunksPublic shared download (public)
GET/api/v1/public/shares/{shareCode}/files/{fileHash}/decrypt-infoPublic decrypt info (public)
POST/api/v1/files/download-batches/reportReport batch download quality metrics
GET/api/v1/files/{id}/versionsList version chain for a file
POST/api/v1/files/{id}/versionsMark file as parent for a new version upload

Admin File Audit (/api/v1/admin/files)

MethodEndpointDescription
GET/api/v1/admin/filesGet all files (paged)
GET/api/v1/admin/files/{id}File detail with audit info
PUT/api/v1/admin/files/{id}/statusUpdate file status
DELETE/api/v1/admin/files/{id}Force physical file deletion
GET/api/v1/admin/files/sharesGet all shares (paged)
DELETE/api/v1/admin/files/shares/{shareCode}Force cancel share
GET/api/v1/admin/files/shares/{shareCode}/logsShare access logs
GET/api/v1/admin/files/shares/{shareCode}/statsShare access stats

Admin Integrity Alerts (/api/v1/admin/integrity-alerts)

MethodEndpointDescription
GET/api/v1/admin/integrity-alertsList integrity alerts (paginated, filters: status, alertType)
POST/api/v1/admin/integrity-alerts/checkTrigger manual integrity check
PUT/api/v1/admin/integrity-alerts/{id}/acknowledgeAcknowledge an integrity alert
PUT/api/v1/admin/integrity-alerts/{id}/resolveResolve an integrity alert (with note)

Quota (/api/v1/files/quota, /api/v1/admin/quota)

MethodEndpointDescription
GET/api/v1/files/quotaGet current user quota status
POST/api/v1/admin/quota/rollout/auditsUpsert quota rollout audit record (admin)
GET/api/v1/admin/quota/rollout/auditsQuery quota rollout audit record (admin, params: batchId, tenantId)

Public Share Page (/api/v1/shares)

MethodEndpointDescription
GET/api/v1/shares/{shareCode}/infoGet share info (public)

Images (/api/v1/images)

MethodEndpointDescription
POST/api/v1/images/upload/avatarUpload avatar
POST/api/v1/images/upload/imageUpload image
GET/api/v1/images/download/images/**Download image (public)

Friends (/api/v1/friends)

MethodEndpointDescription
POST/api/v1/friends/requestsSend friend request
GET/api/v1/friends/requests/receivedReceived requests
GET/api/v1/friends/requests/sentSent requests
PUT/api/v1/friends/requests/{requestId}/statusAccept request
PUT/api/v1/friends/requests/{requestId}/statusReject request
DELETE/api/v1/friends/requests/{requestId}Cancel request
GET/api/v1/friends/requests/pending-countPending request count
GET/api/v1/friendsFriend list (paged)
GET/api/v1/friends/allFull friend list
DELETE/api/v1/friends/{friendId}Remove friend
PUT/api/v1/friends/{friendId}/remarkUpdate friend remark
GET/api/v1/friends/searchSearch users

Friend Shares (/api/v1/friend-shares)

MethodEndpointDescription
POST/api/v1/friend-sharesShare files with friend
GET/api/v1/friend-shares/receivedReceived friend shares
GET/api/v1/friend-shares/sentSent friend shares
GET/api/v1/friend-shares/{shareId}Share detail
PUT/api/v1/friend-shares/{shareId}/read-statusMark as read
DELETE/api/v1/friend-shares/{shareId}Cancel share
GET/api/v1/friend-shares/unread-countUnread count

Conversations (/api/v1/conversations)

MethodEndpointDescription
GET/api/v1/conversationsConversation list
GET/api/v1/conversations/{id}Conversation detail + messages
GET/api/v1/conversations/unread-countUnread conversation count
PUT/api/v1/conversations/{id}/read-statusMark conversation as read
DELETE/api/v1/conversations/{id}Delete conversation

Messages (/api/v1/messages)

MethodEndpointDescription
POST/api/v1/messagesSend private message
GET/api/v1/messages/unread-countTotal unread messages

Announcements (/api/v1/announcements)

MethodEndpointDescription
GET/api/v1/announcements/latestLatest announcements
GET/api/v1/announcementsAnnouncement list
GET/api/v1/announcements/{id}Announcement detail
GET/api/v1/announcements/unread-countUnread announcement count
PUT/api/v1/announcements/{id}/read-statusMark one announcement as read
PUT/api/v1/announcements/read-statusMark all announcements as read
GET/api/v1/admin/announcementsAdmin announcement list
POST/api/v1/announcementsPublish announcement (admin)
PUT/api/v1/announcements/{id}Update announcement (admin)
DELETE/api/v1/announcements/{id}Delete announcement (admin)

Tickets (/api/v1/tickets)

MethodEndpointDescription
GET/api/v1/ticketsMy ticket list
GET/api/v1/tickets/{id}Ticket detail
POST/api/v1/ticketsCreate ticket
PUT/api/v1/tickets/{id}Update ticket
POST/api/v1/tickets/{id}/replyReply ticket
POST/api/v1/tickets/{id}/closeClose ticket
POST/api/v1/tickets/{id}/confirmConfirm completion
GET/api/v1/tickets/pending-countPending ticket count
GET/api/v1/tickets/unread-countUnread ticket count
GET/api/v1/admin/ticketsAdmin ticket list
PUT/api/v1/admin/tickets/{ticketId}/assigneeAssign ticket (admin)
PUT/api/v1/admin/tickets/{ticketId}/statusUpdate status (admin)
GET/api/v1/admin/tickets/pending-countAdmin pending ticket count

Permissions (/api/v1/system/permissions, admin)

MethodEndpointDescription
GET/api/v1/system/permissionsPermission tree
GET/api/v1/system/permissions/listPermission page list
GET/api/v1/system/permissions/modulesModule list
POST/api/v1/system/permissionsCreate permission
PUT/api/v1/system/permissions/{id}Update permission
DELETE/api/v1/system/permissions/{id}Delete permission
GET/api/v1/system/permissions/roles/{role}Role permissions
POST/api/v1/system/roles/{role}/permissionsGrant permission
DELETE/api/v1/system/roles/{role}/permissions/{permissionCode}Revoke permission

System Monitoring (/api/v1/system)

MethodEndpointDescription
GET/api/v1/system/statsSystem statistics
GET/api/v1/system/chain-statusBlockchain status
GET/api/v1/system/healthSystem health
GET/api/v1/system/storage-capacityStorage capacity aggregation (cluster/node/domain)
GET/api/v1/system/monitorAggregated monitoring metrics

System Audit (/api/v1/system/audit)

MethodEndpointDescription
GET/api/v1/system/audit/overviewAudit overview
GET/api/v1/system/audit/logsAudit log page (GET)
POST/api/v1/system/audit/logs/queryAudit log page (POST)
GET/api/v1/system/audit/logs/{id}Audit log detail
POST/api/v1/system/audit/logs/exportExport audit logs
GET/api/v1/system/audit/high-frequencyHigh-frequency operations
POST/api/v1/system/audit/sensitive/pageSensitive operation page
GET/api/v1/system/audit/error-statsError stats
GET/api/v1/system/audit/time-distributionTime distribution
GET/api/v1/system/audit/configsAudit configs
PUT/api/v1/system/audit/configsUpdate audit configs
POST/api/v1/system/audit/anomalies/checkCheck anomalies
POST/api/v1/system/audit/logs/backupsBackup logs

SSE (/api/v1/sse)

MethodEndpointDescription
GET/api/v1/sse/connectEstablish SSE connection (short-lived token)
DELETE/api/v1/sse/disconnectDisconnect
GET/api/v1/sse/statusConnection status

Recommended flow:

text
1) POST /api/v1/auth/tokens/sse   (Authorization: Bearer <jwt>)
2) GET  /api/v1/sse/connect?token=<sseToken>&connectionId=<optional>

Typical event types:

  • connected
  • heartbeat
  • message-received
  • file-record-success
  • file-record-failed
  • announcement-published
  • ticket-updated
  • friend-request
  • friend-accepted
  • friend-share
  • audit-alert

Unified Response Format

json
{
  "code": 200,
  "message": "success",
  "data": {}
}
  • For business error codes: /docs/en/api/error-codes.md
  • For fuller module-level details: /API_DOCUMENTATION.md

Released under the Apache 2.0 License.