Skip to content

Conversation

@ahmed-n-abdeltwab
Copy link
Contributor

@ahmed-n-abdeltwab ahmed-n-abdeltwab commented Jul 17, 2025

🚀 OpenAPI Migration Progress

Description:
This PR tracks the ongoing progress of migrating Rocket.Chat API endpoints to the new OpenAPI pattern with AJV validation and improved documentation. It will be continuously updated to reflect completed and remaining work.


Summary

  • Total endpoints: XX (calculating...)
  • Migrated so far: 19
  • Remaining: XX (calculating...)

🚨 Core API Endpoints

These are 506 endpoints critical for core features and should be migrated first:

Authentication (0 / 9 completed)
  • login
  • login - with Facebook
  • login - with Twitter
  • login - with Google
  • logout
  • me
  • users.2fa.enableEmail
  • users.2fa.sendEmailCode
  • users.2fa.disableEmail
Content Management (0 / 12 completed)
  • emoji-custom.all
  • emoji-custom.create
  • emoji-custom.delete
  • emoji-custom.list
  • emoji-custom.update
  • custom-sounds.list
  • custom-user-status.list
  • custom-user-status.create
  • custom-user-status.update
  • custom-user-status.delete
  • assets.setAsset
  • assets.unsetAsset
Integrations (2 / 13 completed)
  • integrations.create
  • integrations.get
  • integrations.history (progressing...)
  • integrations.list
  • integrations.update
  • integrations.remove
  • webdav.getMyAccounts
  • webdav.removeWebdavAccount
  • oauth-apps.create
  • oauth-apps.update
  • oauth-apps.list
  • oauth-apps.get
  • oauth-apps.delete
Marketplace Apps (0 / 4 completed)
  • apps/public/{app-id}/incoming
  • apps/public/{appId}/templateMessage
  • apps
  • apps/logs
Messaging (0 / 39 completed)
  • chat.delete
  • chat.react
  • chat.update
  • chat.reportMessage
  • chat.followMessage
  • chat.unfollowMessage
  • chat.getMessage
  • chat.getThreadsList
  • chat.getDeletedMessages
  • chat.getDiscussions
  • chat.getMentionedMessages
  • chat.getMessageReadReceipts
  • chat.getPinnedMessages
  • chat.getStarredMessages
  • chat.getThreadMessages
  • chat.ignoreUser
  • chat.pinMessage ✏️ Needs Updatefeat: Add OpenAPI Support to chat.pinMessage API #36020
  • chat.unPinMessage
  • chat.postMessage ⚠️ Blockedfeat: Add OpenAPI Support to chat.postMessage API #36090

    ⛔ Blocked until PR #36456 is merged.
    🕒 This task remains blocked until that fix is done.

  • chat.search
  • chat.sendMessage
  • chat.starMessage
  • chat.unStarMessage
  • chat.syncThreadsList
  • chat.syncThreadMessages
  • chat.syncMessages
  • dm.close
  • dm.counters
  • dm.create
  • dm.delete
  • dm.files
  • dm.history
  • dm.list.everyone
  • dm.list
  • dm.members
  • dm.messages
  • dm.messages.others
  • dm.open
  • dm.setTopic
Omnichannel (0 / 154 completed)
  • livechat/users/{type}
  • livechat/users/{type}/{_id}
  • livechat/agent.info/{rid}/{token}
  • livechat/agent.next/{token}
  • livechat/agents/{agentId}/departments
  • livechat/agents/available
  • livechat/agents/available-for-service-history
  • omnichannel/agents/available
  • omnichannel/contact
  • omnichannel/contact.search
  • omnichannel/contacts
  • omnichannel/contacts.update
  • omnichannel/contacts.conflicts
  • omnichannel/contacts.get
  • omnichannel/contacts.search
  • omnichannel/contacts.channels
  • omnichannel/contacts.history
  • omnichannel/contacts.checkExistence
  • livechat/analytics/agent-overview
  • livechat/analytics/overview
  • livechat/config
  • livechat/rooms
  • livechat/visitor/{token}
  • livechat/visitors.search
  • livechat/tags.list
  • livechat/tags/{tagId}
  • livechat/tags.getOne
  • livechat/priorities
  • livechat/priorities.list
  • livechat/priorities/{priorityId}
  • livechat/priority.getOne
  • livechat/business-hours
  • livechat/business-hours.list
  • livechat/business-hour
  • livechat/units
  • livechat/units.list
  • livechat/monitors
  • livechat/inquiries.queuedForUser
  • livechat/webhook.test
  • livechat/integrations.settings
  • livechat/custom.fields
  • livechat/message
  • livechat/messages.history/{rid}
  • omnichannel/integrations
  • omnichannel/integrations.list
  • canned-responses
  • canned-responses.get
  • canned-responses/{_id}
  • connector.extension.getRegistrationInfoByUserId
  • omnichannel/{rid}/request-transcript
  • omnichannel/agents/statistics
  • omnichannel/agents/statistics/{agentId}
  • omnichannel/resume-chat
  • omnichannel/transfer-chat
  • omnichannel/room.forward
  • omnichannel/room.close
  • omnichannel/room.hold
  • omnichannel/room.unhold
  • omnichannel/room.tags
  • omnichannel/room.tags.remove
  • omnichannel/room.info/{rid}
  • omnichannel/room.visitor.message
  • omnichannel/room.agent.message
  • omnichannel/room.messages/{rid}
  • omnichannel/room.checkExistence
  • omnichannel/room.history/{rid}
  • omnichannel/room.dual-history/{rid}
  • omnichannel/room.peek
  • omnichannel/room.queue
  • omnichannel/room.queueInfo/{rid}
  • omnichannel/room.queueStatistics
  • omnichannel/room.metrics/{rid}
  • omnichannel/room.metrics
  • omnichannel/room.tagStats
  • omnichannel/room.transferHistory/{rid}
  • omnichannel/visitor/{token}/departments
  • omnichannel/visitor/{token}/status
  • omnichannel/visitor/{token}/info
  • omnichannel/visitor/{token}/history
  • omnichannel/visitor/{token}/tags
  • voip/events
  • voip/managementServer/checkConnection
  • voip/callServer/checkConnection
  • voip/queues.getSummary
  • voip/queues.getQueuedCallsForThisExtension
  • voip/queues.getMembershipSubscription
  • voip/room
  • voip/room.close
  • voip/rooms
  • voip/room.join
  • voip/rooms.list
  • voip/rooms.history
  • voip/room.recording.start
  • voip/room.recording.stop
  • voip/room.participants
  • voip/room.participant.add
  • voip/room.participant.remove
  • voip/room.participant.mute
  • voip/room.participant.unmute
  • voip/room.participant.deafen
  • voip/room.participant.undeafen
  • voip/room.lock
  • voip/room.unlock
  • voip/room.info/{roomId}
  • voip/participant/info/{participantId}
  • voip/participant.muteAll
  • voip/participant.unmuteAll
  • voip/settings.get
  • voip/settings.update
  • voip/statistics
  • voip/transcripts/{roomId}
  • voip/call/{callId}/stats
  • voip/call/{callId}/start
  • voip/call/{callId}/end
  • voip/call/{callId}/transfer
  • voip/call/{callId}/mute
  • voip/call/{callId}/unmute
  • voip/call/{callId}/hold
  • voip/call/{callId}/unhold
  • voip/call/{callId}/join
  • voip/call/{callId}/participants
  • voip/call/{callId}/participant.add
  • voip/call/{callId}/participant.remove
  • voip/call/{callId}/participant.mute
  • voip/call/{callId}/participant.unmute
  • voip/call/{callId}/record.start
  • voip/call/{callId}/record.stop
  • voip/call/{callId}/stats.summary
  • voip/call/summary
  • voip/call/active
  • voip/call/history
  • voip/call/settings
  • voip/channel.create
  • voip/channel.list
  • voip/channel.info/{channelId}
  • voip/channel.update/{channelId}
  • voip/channel.delete/{channelId}
  • voip/channel.participants/{channelId}
  • voip/amqp/connect
  • voip/amqp/disconnect
  • voip/amqp/publish
  • voip/amqp/subscribe
  • voip/amqp/unsubscribe
  • voip/amqp/queues
  • voip/amqp/exchanges
  • voip/amqp/bind
  • voip/amqp/unbind
  • voip/amqp/consume
  • voip/amqp/ack
  • voip/amqp/nack
  • voip/amqp/prefetch
  • voip/amqp/metrics
  • voip/amqp/channels
  • omnichannel/{rid}/request-transcript
Miscellaneous (0 / 26 completed)
  • autotranslate.getSupportedLanguages
  • autotranslate.saveSettings
  • autotranslate.translateMessage
  • email-inbox.list
  • email-inbox
  • email-inbox/{_id}
  • email-inbox.search
  • email-inbox.send-test/{_id}
  • shield.svg
  • spotlight
  • stdout.queue
  • licenses.info
  • licenses.add
  • video-conference/jitsi.update-timeout
  • commands.get
  • commands.list
  • commands.preview
  • commands.run
  • mailer
  • mailer.unsubscribe
  • findOrCreateInvite
  • listInvites
  • removeInvite/{_id}
  • useInviteToken
  • validateInviteToken
  • method.call/{method}
Notifications (0 / 6 completed)
  • banners/{id}
  • banners
  • banners.dismiss
  • banners.getNew
  • push.get
  • push.token
Rooms (0 / 126 completed)
  • channels.create
  • channels.addAll
  • channels.addLeader
  • channels.addModerator
  • channels.addOwner
  • channels.anonymousread
  • channels.archive
  • channels.close
  • channels.counters
  • channels.delete
  • channels.files
  • channels.history
  • channels.info
  • channels.invite
  • channels.join
  • channels.kick
  • channels.leave
  • channels.list.joined
  • channels.list
  • channels.members
  • channels.messages
  • channels.moderators
  • channels.online
  • channels.open
  • channels.removeLeader
  • channels.removeModerator
  • channels.removeOwner
  • channels.rename
  • channels.roles
  • channels.setAnnouncement
  • channels.setCustomFields
  • channels.setDefault
  • channels.setDescription
  • channels.setJoinCode
  • channels.setPurpose
  • channels.setReadOnly
  • channels.setTopic
  • channels.setType
  • channels.unarchive
  • channels.getAllUserMentionsByChannel
  • channels.getIntegrations
  • channels.convertToTeam
  • rooms.saveNotification
  • rooms.adminRooms
  • rooms.cleanHistory
  • rooms.info
  • rooms.getDiscussions
  • rooms.get
  • rooms.leave
  • rooms.delete
  • rooms.favorite ✏️ Needs Updatefeat: Add OpenAPI Support to rooms.favorite API #35995
  • rooms.upload/{rid}
  • rooms.media/{rid}
  • rooms.autocomplete.availableForTeams
  • rooms.autocomplete.channelAndPrivate
  • rooms.autocomplete.adminRooms
  • rooms.adminRooms.getRoom
  • rooms.saveRoomSettings
  • rooms.nameExists
  • rooms.changeArchivationState
  • rooms.export
  • rooms.muteUser
  • rooms.unmuteUser
  • rooms.createDiscussion
  • rooms.images
  • audit/rooms.members
  • rooms.membersOrderedByRole
  • teams.create
  • teams.listAll
  • teams.list
  • teams.info
  • teams.update
  • teams.addMembers
  • teams.members
  • teams.updateMember
  • teams.leave
  • teams.removeMember
  • teams.delete
  • teams.autocomplete
  • teams.convertToChannel
  • teams.addRooms
  • teams.removeRoom
  • teams.updateRoom
  • teams.listRooms
  • teams.listRoomsOfUser
  • teams.listChildren
  • groups.online
  • groups.getIntegrations
  • groups.addAll
  • groups.addLeader
  • groups.addModerator
  • groups.addOwner
  • groups.archive
  • groups.close
  • groups.counters
  • groups.create
  • groups.delete
  • groups.history
  • groups.info
  • groups.invite
  • groups.kick
  • groups.leave
  • groups.listAll
  • groups.list
  • groups.members
  • groups.messages
  • groups.moderators
  • groups.open
  • groups.removeLeader
  • groups.removeModerator
  • groups.removeOwner
  • groups.rename
  • groups.setAnnouncement
  • groups.setCustomFields
  • groups.setDescription
  • groups.setPurpose
  • groups.setReadOnly
  • groups.setTopic
  • groups.setType
  • groups.unarchive
  • groups.files
  • groups.setEncrypted
  • groups.convertToTeam
  • groups.roles
  • directory
  • rooms.hide
Settings (0 / 48 completed)
  • settings.public
  • settings.oauth
  • settings
  • settings.addCustomOAuth
  • settings/{_id}
  • service.configurations
  • audit.settings
  • cloud.manualRegister
  • dns.resolve.txt
  • dns.resolve.srv
  • e2e.fetchMyKeys
  • e2e.getUsersOfRoomWithoutKey
  • e2e.setRoomKeyID
  • e2e.setUserPublicAndPrivateKeys
  • e2e.updateGroupKey
  • uploadImportFile
  • downloadPublicImportFile
  • startImport
  • getImportFileData
  • getImportProgress
  • getLatestImportOperations
  • downloadPendingFiles
  • downloadPendingAvatars
  • getCurrentImportOperation
  • import.new
  • import.addUsers
  • import.run
  • import.status
  • import.clear
  • instances.get
  • federation/addServerByUser
  • federation/listServersByUser
  • federation/removeServerByUser
  • federation/searchPublicRooms
  • federation/joinExternalPublicRoom
  • moderation.reportsByUsers
  • moderation.user.reportedMessages
  • moderation.reports
  • moderation.reportInfo
  • moderation.dismissReports
  • moderation.user.deleteReportedMessages
  • sessions/list
  • sessions/list.all
  • sessions/info
  • sessions/info.admin
  • sessions/logout.me
  • sessions/logout
  • pw.getPolicy
Statistics (0 / 16 completed)
User Management (0 / 53 completed)

Let me know if you'd like these grouped, categorized, or documented further.


📝 Secondary API Endpoints

These endpoints are lower priority and can be migrated after core APIs: (calculating...)

  • [ ]

🧪 Testing Plan

  • Ensure all migrated endpoints validate request and response schemas using AJV.
  • Confirm accurate documentation in Swagger UI for each endpoint.
  • Run integration tests to avoid regressions.

💡 Notes

  • This PR is for tracking and visibility; implementation PRs will be linked progressively.
  • Please feel free to suggest changes to prioritization.

Looking forward to your feedback 🚀

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Jul 17, 2025

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label
  • This PR is missing the required milestone or project

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Jul 17, 2025

⚠️ No Changeset found

Latest commit: 514f7d4

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ahmed-n-abdeltwab ahmed-n-abdeltwab changed the title [NOMERGE] feat: openapi migration progress [NOMERGE]: openapi migration progress Jul 17, 2025
@ahmed-n-abdeltwab ahmed-n-abdeltwab changed the title [NOMERGE]: openapi migration progress [NOMERGE] feat: openapi migration progress Jul 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants