snapshot of https://github.com/RocketChat/Rocket.Chat.git (develop, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Code scanning - action / CodeQL-Build (push) Failing after 2s
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Code scanning - action / CodeQL-Build (push) Failing after 2s
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
This commit is contained in:
104
packages/desktop-api/CHANGELOG.md
Normal file
104
packages/desktop-api/CHANGELOG.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# @rocket.chat/desktop-api
|
||||
|
||||
## 1.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ([#40721](https://github.com/RocketChat/Rocket.Chat/pull/40721)) ## Phishing-Resistant Multi-Factor Authentication
|
||||
|
||||
Introduces a more secure and reliable server-side OAuth authentication flow.
|
||||
|
||||
### What’s New
|
||||
|
||||
- **Improved OAuth login security**
|
||||
OAuth authentication now happens fully on the server, reducing the risk of token theft, phishing attacks, and client-side credential interception.
|
||||
- **Built-in CSRF, state validation, and PKCE protection**
|
||||
OAuth logins now include stronger protection against CSRF attacks, request tampering, and authorization code interception through secure state validation and PKCE support.
|
||||
- **Improved two-step verification with OAuth logins**
|
||||
Users with email or TOTP two-factor authentication enabled will now be asked to complete 2FA even when signing in with providers like Google, GitHub, GitLab, and others.
|
||||
- **Improved mobile & desktop app login**
|
||||
Mobile and desktop apps now support a smoother and more secure deep-link OAuth login flow.
|
||||
- **A new setting to enable/disable new OAuth Flow**
|
||||
Enable this new setting `Accounts_OAuth_Use_Modern_Flow` to use all of the above mentioned features.
|
||||
|
||||
- ([#41056](https://github.com/RocketChat/Rocket.Chat/pull/41056)) Added a `setUserRoles` bridge method to the desktop API and pushed the logged-in user's roles to the desktop app. This lets the desktop client restrict supportedVersions messages (such as version-expiration warnings) to specific roles like admins, instead of showing them to every user. The push is reactive to role changes; desktop builds without the bridge method fall back to their own role lookup.
|
||||
|
||||
## 1.3.0-rc.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ([#40721](https://github.com/RocketChat/Rocket.Chat/pull/40721)) ## Phishing-Resistant Multi-Factor Authentication
|
||||
|
||||
Introduces a more secure and reliable server-side OAuth authentication flow.
|
||||
|
||||
### What’s New
|
||||
|
||||
- **Improved OAuth login security**
|
||||
OAuth authentication now happens fully on the server, reducing the risk of token theft, phishing attacks, and client-side credential interception.
|
||||
- **Built-in CSRF, state validation, and PKCE protection**
|
||||
OAuth logins now include stronger protection against CSRF attacks, request tampering, and authorization code interception through secure state validation and PKCE support.
|
||||
- **Improved two-step verification with OAuth logins**
|
||||
Users with email or TOTP two-factor authentication enabled will now be asked to complete 2FA even when signing in with providers like Google, GitHub, GitLab, and others.
|
||||
- **Improved mobile & desktop app login**
|
||||
Mobile and desktop apps now support a smoother and more secure deep-link OAuth login flow.
|
||||
- **A new setting to enable/disable new OAuth Flow**
|
||||
Enable this new setting `Accounts_OAuth_Use_Modern_Flow` to use all of the above mentioned features.
|
||||
|
||||
- ([#41056](https://github.com/RocketChat/Rocket.Chat/pull/41056)) Added a `setUserRoles` bridge method to the desktop API and pushed the logged-in user's roles to the desktop app. This lets the desktop client restrict supportedVersions messages (such as version-expiration warnings) to specific roles like admins, instead of showing them to every user. The push is reactive to role changes; desktop builds without the bridge method fall back to their own role lookup.
|
||||
|
||||
## 1.2.0
|
||||
|
||||
## 1.2.0-rc.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ([#39760](https://github.com/RocketChat/Rocket.Chat/pull/39760)) ## Phishing-Resistant Multi-Factor Authentication
|
||||
|
||||
Introduces a more secure and reliable server-side OAuth authentication flow.
|
||||
|
||||
### What’s New
|
||||
|
||||
- **Improved OAuth login security**
|
||||
OAuth authentication now happens fully on the server, reducing the risk of token theft, phishing attacks, and client-side credential interception.
|
||||
- **Built-in CSRF, state validation, and PKCE protection**
|
||||
OAuth logins now include stronger protection against CSRF attacks, request tampering, and authorization code interception through secure state validation and PKCE support.
|
||||
- **Improved two-step verification with OAuth logins**
|
||||
Users with email or TOTP two-factor authentication enabled will now be asked to complete 2FA even when signing in with providers like Google, GitHub, GitLab, and others.
|
||||
- **Improved mobile & desktop app login**
|
||||
Mobile and desktop apps now support a smoother and more secure deep-link OAuth login flow.
|
||||
|
||||
## 1.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ([#38989](https://github.com/RocketChat/Rocket.Chat/pull/38989)) chore(eslint): Upgrades ESLint and its configuration
|
||||
|
||||
## 1.1.1-rc.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ([#38989](https://github.com/RocketChat/Rocket.Chat/pull/38989)) chore(eslint): Upgrades ESLint and its configuration
|
||||
|
||||
## 1.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ([#36912](https://github.com/RocketChat/Rocket.Chat/pull/36912)) Defines `reloadServer()` method for the context bridge object type.
|
||||
|
||||
## 1.1.0-rc.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ([#36912](https://github.com/RocketChat/Rocket.Chat/pull/36912)) Defines `reloadServer()` method for the context bridge object type.
|
||||
|
||||
## 1.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- ([#36770](https://github.com/RocketChat/Rocket.Chat/pull/36770)) Adds a new package (`@rocket.chat/desktop-api`) to interface the desktop app's injected context
|
||||
|
||||
## 1.0.0-rc.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- ([#36770](https://github.com/RocketChat/Rocket.Chat/pull/36770)) Adds a new package (`@rocket.chat/desktop-api`) to interface the desktop app's injected context
|
||||
31
packages/desktop-api/package.json
Normal file
31
packages/desktop-api/package.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://www.schemastore.org/package",
|
||||
"name": "@rocket.chat/desktop-api",
|
||||
"version": "1.3.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/RocketChat/Rocket.Chat.git",
|
||||
"directory": "packages/desktop-api"
|
||||
},
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
}
|
||||
},
|
||||
"types": "./dist/index.d.ts",
|
||||
"scripts": {
|
||||
"build": "rimraf dist && tsc -p tsconfig.json",
|
||||
"lint": "eslint .",
|
||||
"typecheck": "tsc -p tsconfig.json --noEmit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "~9.39.5",
|
||||
"rimraf": "~6.0.1",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"volta": {
|
||||
"extends": "../../package.json"
|
||||
}
|
||||
}
|
||||
69
packages/desktop-api/src/index.ts
Normal file
69
packages/desktop-api/src/index.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
export type ServerInfo = {
|
||||
version: string;
|
||||
};
|
||||
|
||||
export type Badge = '•' | number;
|
||||
|
||||
export type ThemeAppearance = 'dark' | 'light' | 'auto' | 'high-contrast' | undefined;
|
||||
|
||||
export type VideoChatWindowOptions = {
|
||||
providerName?: string | undefined;
|
||||
};
|
||||
|
||||
export type OutlookEventsResponse = {
|
||||
status: 'success' | 'canceled';
|
||||
};
|
||||
|
||||
export type CustomNotificationOptions = {
|
||||
type: 'voice' | 'text';
|
||||
id?: string;
|
||||
payload: {
|
||||
title: string;
|
||||
body: string;
|
||||
avatar?: string;
|
||||
silent?: boolean;
|
||||
requireInteraction?: boolean;
|
||||
};
|
||||
};
|
||||
|
||||
export interface IRocketChatDesktop {
|
||||
dispatchCustomNotification: (options: CustomNotificationOptions) => void;
|
||||
closeCustomNotification: (id: string) => void;
|
||||
onReady: (cb: (serverInfo: ServerInfo) => void) => void;
|
||||
setServerInfo: (serverInfo: ServerInfo) => void;
|
||||
setUrlResolver: (getAbsoluteUrl: (relativePath?: string) => string) => void;
|
||||
setBadge: (badge: Badge) => void;
|
||||
setFavicon: (faviconUrl: string) => void;
|
||||
setBackground: (imageUrl: string) => void;
|
||||
setSidebarCustomTheme: (customTheme: string) => void;
|
||||
setTitle: (title: string) => void;
|
||||
setUserLoggedIn: (userLoggedIn: boolean) => void;
|
||||
setUserRoles: (roles: string[]) => void;
|
||||
setUserPresenceDetection: (options: {
|
||||
isAutoAwayEnabled: boolean;
|
||||
idleThreshold: number | null;
|
||||
setUserOnline: (online: boolean) => void;
|
||||
}) => void;
|
||||
setUserThemeAppearance: (themeAppearance: ThemeAppearance) => void;
|
||||
createNotification: (
|
||||
options: NotificationOptions & {
|
||||
canReply?: boolean;
|
||||
title: string;
|
||||
onEvent: (eventDescriptor: { type: string; detail: unknown }) => void;
|
||||
},
|
||||
) => Promise<unknown>;
|
||||
destroyNotification: (id: unknown) => void;
|
||||
getInternalVideoChatWindowEnabled: () => boolean;
|
||||
openInternalVideoChatWindow: (url: string, options: VideoChatWindowOptions) => void;
|
||||
setGitCommitHash: (gitCommitHash: string) => void;
|
||||
writeTextToClipboard: (text: string) => void;
|
||||
getOutlookEvents: (date: Date) => Promise<OutlookEventsResponse>;
|
||||
setOutlookExchangeUrl: (url: string, userId: string) => void;
|
||||
hasOutlookCredentials: () => Promise<boolean>;
|
||||
clearOutlookCredentials: () => void;
|
||||
setUserToken: (token: string, userId: string) => void;
|
||||
openDocumentViewer: (url: string, format: string, options: any) => void;
|
||||
reloadServer: () => void;
|
||||
getE2ePdfPreviewSizeLimit: () => number;
|
||||
openInBrowser: (url: string) => void;
|
||||
}
|
||||
13
packages/desktop-api/tsconfig.json
Normal file
13
packages/desktop-api/tsconfig.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "@rocket.chat/tsconfig/client.json",
|
||||
"compilerOptions": {
|
||||
"target": "es2024",
|
||||
"module": "node20",
|
||||
"moduleResolution": "node16",
|
||||
"rootDir": "./src",
|
||||
"outDir": "./dist",
|
||||
"declarationMap": false,
|
||||
"sourceMap": false
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
||||
Reference in New Issue
Block a user