Commit graph

39 commits

Author SHA1 Message Date
Elias Nahum
44eb76bed7
feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312)
* refactor: implement custom ExpoImage wrapper for cache control

Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app

* refactor(ios): convert Gekidou to CocoaPods

Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0

* npm audit

* update fastlane

* feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection

Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository

* fix tests by mocking @mattermost/intune

* feat: implement Intune MAM integration with comprehensive security enforcement

Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls

* fix alerts when no server database is present

* Unify cache strategy

* fix emit config changed after it was stored in the db

* Handle Mid-Session Enrollment Detection

* fix ADALLogOverrideDisabled missing in Fastfile

* fix flow for initial enrollment

* fix and add unit tests

* enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release

* Update intune submodule with addressed feedback

* fix validate-intune-clean workflow

* feat(intune): add comprehensive error handling and SAML+Entra support

Add production-ready error handling for native Entra authentication with
user-friendly i18n messages, comprehensive test coverage, and support for
Entra login when server requires SAML.

* update i18n

* update intune submodule

* update build-pr token

* fix race condition between server auth and intune enrollment

* fix CI workflow to build with intune

* use deploy key for intune submodule

* set the config directly in the submodule .git

* debug injection

* try setting GIT_SSH_COMMAND

* remove action debug

* fix server url input

* match pod cache with intune hash

* Fastfile and envs

* have workflows check for intune/.git

* have ci cache intune frameworks as well

* update Fastlane to set no-cache to artifacts uploaded

* fix s3 upload

* fix pblist template

* Attempt to remove the cache control for PR uploads to s3

* use hash from commit for S3 path

* Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain

* Fix surface errors from intune login

* fix postinstall scripts

* use cacheKey for draft md images

* remove unnecessary double await during test

* Have isMinimumLicenseTier accept valid license sku tier as target

* Add missing Auth error messages

* remove the last period for intune errors in i18n

* do not call unenroll with wipe on manual logout

* Fix tests and Intune error messages

* do not filter any SSO type regardless of which is used for Intune

* fix 412 to not retry

* fix tests, app logs sharing and share_extension avatar cache

* apply setScreenCapturePolicy on license change

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* re-apply screen capture on enrollment

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* use userData from intunr login and prevent getMe

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* Check for Biometrics and Jailbreak as we used to

---------

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
2025-12-10 13:07:28 +02:00
Elias Nahum
84846b01a9
MM-66173 fixes crash when receiving notifications (#9243)
* MM-66173 fixes crash when receiving notifications

* Update ios/Gekidou/Sources/Gekidou/PushNotification/PushNotification+Signature.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ios/Gekidou/Sources/Gekidou/PushNotification/PushNotification+Signature.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ios/Gekidou/Sources/Gekidou/DataTypes/ChannelMember.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-01 19:19:31 +08:00
Felipe Martin
f50056f57b
MM-65085: Support Pre Shared Password on server connect (#9082)
* feat: add shared server password to server setup

* feat: allow editing the sever

* refactor: changed password -> secret, styling and tests

* e2e: draft e2e tests

* chore: lint fix

* feat: also send preauth secret header when using native share

* fix: removed unused server database migration

credentials are being stored in the keychain

* i18n: added missing english translations

* test(e2e): simplified connection tests

* test(e2e): rework

* refactor: remove setBearerToken

* chore: restore migrations the way it was

* chore: reverted file to original state

* chore: removed unneeded test and renamed password to secret

* chore: function version

* chore: updated forms i18n keys

* chore: remove if from test

* chore: unneeded variable

* fix: add missing key on object list

* refactor: swift keychain access to retrieve all credentials in one call

* revert: edit server screen

* refactor: credentials use getGenericCredential

* fix: objc code calling old method

* fix: added scroll to login screen

* chore: variable names

* fix: avoid inline styles

* fix: Improved appVersion positioning

* Update app/screens/server/form.tsx

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>

* feat: show error message on 403

* Revert "feat: show error message on 403"

This reverts commit f41630c767e10211adf1885321ceefd8a0931e32.

---------

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2025-09-01 11:24:15 +02:00
Elias Nahum
e8a0be4589
Upgrade SQLite.Swift to 0.15.4 (#9061) 2025-08-08 07:09:51 +08:00
Daniel Espino García
4b068889e7
Add some improvements to thread handling (#8407)
* Add some improvements to thread handling

* Add missing changes

* Android changes

* iOS changes

* Avoid copys

* Refactor getReplyAt
2025-01-16 11:48:28 +01:00
Daniel Espino García
94a7231a05
Add fixes for xCode 16 changes (#8254) 2024-10-11 17:02:45 +02:00
Elias Nahum
de6ccaef01
SSL Pinned Certificate (#8055) 2024-07-23 18:26:20 +08:00
Daniel Espino García
b7791add7c
Use UUID native functions (#8032) 2024-06-20 18:22:59 +08:00
Daniel Espino García
c5e6e34fea
Fix MM 56723 (#7883)
* Fix MM 56723 (iOS)

* Add android

* Android fixes and version checking

* Add version check to ios

* Address feedback

* Add all versions to android

* Check all versions on iOS

* Fix unhandled version case

* Add comments

* Add final version numbers
2024-04-24 17:12:56 +02:00
Daniel Espino García
d74826064b
Remove keychain cache to avoid token invalidation problems (#7479) 2023-08-01 15:46:48 +02:00
Daniel Espino García
5ab2f86b66
Fix ios cache (#7412)
* Fix Keychain cache

* Fix

* Fix import
2023-07-05 14:01:51 -04:00
Daniel Espino García
e365824567
Native fetch users on attachments (#7382)
* Native side of fetching users from attachments text and pretext

* iOS native

* Address feedback
2023-06-02 16:25:54 +02:00
Elias Nahum
20f3aefe34
fix iOS messageSource Database Post model (#7346) 2023-05-13 13:34:58 -04:00
Daniel Espino García
c99861d728
Use message source on post edit (#7325)
* Use message source on post edit

* Fix tests and bugs
2023-05-11 14:18:07 +02:00
Elias Nahum
05469207d7
Fix iOS Push notification crashes (#7237) 2023-03-30 09:26:56 -03:00
Elias Nahum
d61fbd3180
Various fixes (#7161)
* Save message draft when post input is unmounted

* Fix switch CRT on/off

* Handle iPad on Stage Manager

* iOS Share Extension to use LRU cache instead of file cache

* Support building android as aab

* use handleReconnect instead of appEntry on handleCRTToggled

* show skin tone selector tutorial after running all interactions

* Update app/actions/remote/preference.ts

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* fix lint

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-02-24 13:02:05 +02:00
Elias Nahum
153c2f7c8d
iOS refactor push notifications to store data or send to JS for processing (#7128) 2023-02-15 17:07:54 +02:00
Elias Nahum
23cbf82353
Use LRU to cache the Avatar shown in push notifications (#7124)
* iOS switch from file cache to memory cache and use last_picture_update to update the avatar if needed

* Android switch from file cache to memory cache and use last_picture_update to update the avatar if needed, split function to multiple files and catch potential exceptions
2023-02-15 11:19:31 +02:00
Elias Nahum
5aaff10664
Use timeout defaults for iOS Share Extension and Notification Service (#7051)
* Use timeout defaults for iOS Share Extension and Notification Service

* more logs

* Add more logs, handle errors and safe parse the filename
2023-02-01 21:22:28 +02:00
Elias Nahum
ca14631487
Fixes crashes and errors in iOS Share Extension and Notification Service (#7032)
* Fix erros & crashes in iOS share extension

* Fix erros & crashes in iOS notification service

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-01-27 22:14:43 +02:00
Daniel Espino García
b191154db9
Clean todos (#6897)
* Clean todos

* Remove DatabaseHelper folder
2023-01-12 14:25:39 +01:00
Elias Nahum
8097ee300d
Fix crashes found in NotificationService (#6935) 2023-01-06 21:35:40 +02:00
Elias Nahum
001a6699fb
Cache push notification profile image and add logs (#6932)
* Cache push notification profile image and add logs

* Fix indent
2023-01-05 12:31:52 +02:00
Anurag Shivarathri
ed69eacbe7
Count fix (#6926) 2023-01-04 00:00:23 +02:00
Elias Nahum
3f90444698
Notifications profile images (#6904)
* Add profile images to ios notifications

* Avoid marking channel as viewed when tapping a notification
2022-12-24 00:21:08 +02:00
Elias Nahum
3de85b2bd1
iOS notifications badge and posts in channel/thread (#6885) 2022-12-20 11:43:30 +02:00
Elias Nahum
83b251d1ff
update dependencies (#6840)
* update dependencies

* fix iOS SQLite.swift

* update fastlane dependencies
2022-12-08 09:46:44 +02:00
Elias Nahum
6eadc527bb
Gekidou Android share extension (#6803)
* Refactor app database queries to not require the app database as argument

* Android Share Extension and fix notifications prompt

* feedback review
2022-11-30 23:18:56 +02:00
Daniel Espino García
1aa4188f8e
Move config to its own database table (#6744)
* Move config to its own database table

* Address feedback

* Fix test

* Revert minimum version related changes
2022-11-11 21:20:42 +04:00
Elias Nahum
5c7e89d7de
[Gekidou] update deps (#6667)
* Fix login not showing the usernames (#6652)

* update dependencies

* feedback review

* feedback review 2

* remove unused dependencies

* remove duplicate gesture-handler dependency

* add -XX:+HeapDumpOnOutOfMemoryError to gradle

* adjust gradle memory

* update android ci image

* android executor xlarge

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2022-10-13 08:41:18 -03:00
Elias Nahum
c2f5092678
[Gekidou] refactor clean notifications (#6566) 2022-08-19 16:29:15 -04:00
Elias Nahum
3a3123674a
[Gekidou] iOS Share extension (#6432)
* iOS Share extension

* Add Fastlane steps for iOS Share Extension

* new multi file layout

* Add recent label

* Refactor code & identation

* ux feedback

* downsample images

* remove options horizontal padding
2022-07-27 10:31:45 -04:00
Elias Nahum
dd1af41400
Unwapped optional value 2022-06-29 13:52:11 -04:00
Elias Nahum
75ed884e65
Add column last_fetched_at to MyChannel & Thread tables and the migration (#6433)
* Add column last_fetched_at to MyChannel & Thread tables and the migration

* Fix schema tests

* Handle lastFetchAt, retrieve threads on init and properly observe thread unreads (#6436)

* [Gekidou] Set lastFetchAt when fetching posts for a channel (#6437)

* Set lastFetchAt when fetching posts for a channel

* When resetting _preparedState set always to null

* Revert changes in WS

* Handle and set lastFetchedAt for MyChannel in iOS push notification

* feedback review

* iOS fallback to last post createAt if no lastFetchAt set

* Handle lastFetchAt on Android push notifications

* create storePostsForChannel local action

* Fix iOS fallback to last post create_at

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2022-06-29 13:28:50 -04:00
Anurag Shivarathri
efd259a523
[Gekidou] Open CRT notifications (#6369)
* Open CRT notification

* Changes

* fix own DM

* Removed unwanted functions

* WS post commit createThreadFromNewPost as soon as possible

* Addressing the feedback

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2022-06-10 17:27:34 -04:00
Anurag Shivarathri
1b5e41b424
[Gekidou MM-40097 MM-44133] Save thread related data when client receives a push notification (#6275)
* Android changes

* Fixed updating records from native side

* Android: Handle crt related issues

* Android threads fix

* Android misc fixes

* Android addressing feedback

* ios changes WIP

* Update Podfile.lock

* iOS changes

* iOS feedback

* iOS updates the existing record like android

* Android misc

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-06-09 16:50:14 +05:30
Elias Nahum
790b1beb22
[Gekidou] push notifications (#5779)
* Push notifications entry point

* Process android notification natively only if RN is not initialized

* Database changes to store local channel viewed_at

* EphemeralStore wait until screen removed

* Move schedule session notification to utility

* Fix channel remote & local actions + added actions for markChannelAsViewed & fetchMyChannel

* Add fetchMyTeam remote action

* Add dismissAllModalsAndPopToScreen to navigation

* Improve post list component & add app state to re-trigger queries

* Improve WS implementation

* Handle push notification events

* Fix postsInChannel since handler

* Handle in-app notifications

* Post list to listen to column changes

* Track selected bottom tab in ephemeral store

* add useIsTablet hook

* in-app notifications on tablets
2021-10-27 17:53:11 -03:00
Elias Nahum
9ed616afa9
[Gekidou] iOS - Fetch and store data on push notification receipt 2021-09-20 17:59:42 -03:00
Miguel Alatzar
06dc849c97
iOS - Fetch and store data on push notification receipt (#5645)
* Gekidou package and postNotificationReceipt

* Add back UploadAttachments functions

* ios - Fetch and store Posts

* ios - handle PostsInChannel

* Use queue and group for fetchAndStoreDataForPushNotification

* Handle channel and channel membership

* Handle post props

* Handle reactions

* Handle files

* Handle emojis

* Handle images

* Use notification data

* Credential fixes

* Lint fixes

* Fixes

* Call content handler after requests and db writes

* Handle posts in thread

* Remove comment
2021-08-31 15:43:57 -07:00